MVC3 integrated, with some changes to make it compile on Mono and with Razor2
[mono-project.git] / mcs / class / System.Web.Mvc3 / Mvc / AjaxHelper.cs
blob0908bd3baf479824075fc20ed69c932c4041575d
1 namespace System.Web.Mvc {
2 using System;
3 using System.Diagnostics.CodeAnalysis;
4 using System.Text;
5 using System.Web.Routing;
6 using System.Web.Script.Serialization;
8 public class AjaxHelper {
10 private static string _globalizationScriptPath;
12 public AjaxHelper(ViewContext viewContext, IViewDataContainer viewDataContainer)
13 : this(viewContext, viewDataContainer, RouteTable.Routes) {
16 public AjaxHelper(ViewContext viewContext, IViewDataContainer viewDataContainer, RouteCollection routeCollection) {
17 if (viewContext == null) {
18 throw new ArgumentNullException("viewContext");
20 if (viewDataContainer == null) {
21 throw new ArgumentNullException("viewDataContainer");
23 if (routeCollection == null) {
24 throw new ArgumentNullException("routeCollection");
26 ViewContext = viewContext;
27 ViewDataContainer = viewDataContainer;
28 RouteCollection = routeCollection;
31 public static string GlobalizationScriptPath {
32 get {
33 if (String.IsNullOrEmpty(_globalizationScriptPath)) {
34 _globalizationScriptPath = "~/Scripts/Globalization";
36 return _globalizationScriptPath;
38 set {
39 _globalizationScriptPath = value;
43 public RouteCollection RouteCollection {
44 get;
45 private set;
48 public ViewContext ViewContext {
49 get;
50 private set;
53 public ViewDataDictionary ViewData {
54 get {
55 return ViewDataContainer.ViewData;
59 public IViewDataContainer ViewDataContainer {
60 get;
61 private set;
64 [SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Justification = "Instance method for consistency with other helpers.")]
65 public string JavaScriptStringEncode(string message) {
66 if (String.IsNullOrEmpty(message)) {
67 return message;
70 StringBuilder builder = new StringBuilder();
71 JavaScriptSerializer serializer = new JavaScriptSerializer();
72 serializer.Serialize(message, builder);
73 return builder.ToString(1, builder.Length - 2); // remove first + last quote