Fix bugs in sizing TableLayoutPanel (Xamarin bug 18638)
[mono.git] / mcs / class / System.Web.Mvc2 / System.Web.Mvc / AjaxHelper.cs
1 /* ****************************************************************************\r
2  *\r
3  * Copyright (c) Microsoft Corporation. All rights reserved.\r
4  *\r
5  * This software is subject to the Microsoft Public License (Ms-PL). \r
6  * A copy of the license can be found in the license.htm file included \r
7  * in this distribution.\r
8  *\r
9  * You must not remove this notice, or any other, from this software.\r
10  *\r
11  * ***************************************************************************/\r
12 \r
13 namespace System.Web.Mvc {\r
14     using System;\r
15     using System.Diagnostics.CodeAnalysis;\r
16     using System.Text;\r
17     using System.Web.Routing;\r
18     using System.Web.Script.Serialization;\r
19 \r
20     public class AjaxHelper {\r
21 \r
22         private static string _globalizationScriptPath;\r
23 \r
24         public AjaxHelper(ViewContext viewContext, IViewDataContainer viewDataContainer)\r
25             : this(viewContext, viewDataContainer, RouteTable.Routes) {\r
26         }\r
27 \r
28         public AjaxHelper(ViewContext viewContext, IViewDataContainer viewDataContainer, RouteCollection routeCollection) {\r
29             if (viewContext == null) {\r
30                 throw new ArgumentNullException("viewContext");\r
31             }\r
32             if (viewDataContainer == null) {\r
33                 throw new ArgumentNullException("viewDataContainer");\r
34             }\r
35             if (routeCollection == null) {\r
36                 throw new ArgumentNullException("routeCollection");\r
37             }\r
38             ViewContext = viewContext;\r
39             ViewDataContainer = viewDataContainer;\r
40             RouteCollection = routeCollection;\r
41         }\r
42 \r
43         public static string GlobalizationScriptPath {\r
44             get {\r
45                 if (String.IsNullOrEmpty(_globalizationScriptPath)) {\r
46                     _globalizationScriptPath = "~/Scripts/Globalization";\r
47                 }\r
48                 return _globalizationScriptPath;\r
49             }\r
50             set {\r
51                 _globalizationScriptPath = value;\r
52             }\r
53         }\r
54 \r
55         public RouteCollection RouteCollection {\r
56             get;\r
57             private set;\r
58         }\r
59 \r
60         public ViewContext ViewContext {\r
61             get;\r
62             private set;\r
63         }\r
64 \r
65         public ViewDataDictionary ViewData {\r
66             get {\r
67                 return ViewDataContainer.ViewData;\r
68             }\r
69         }\r
70 \r
71         public IViewDataContainer ViewDataContainer {\r
72             get;\r
73             private set;\r
74         }\r
75 \r
76         [SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic",\r
77             Justification = "Instance method for consistency with other helpers.")]\r
78         public string JavaScriptStringEncode(string message) {\r
79             if (String.IsNullOrEmpty(message)) {\r
80                 return message;\r
81             }\r
82             \r
83             StringBuilder builder = new StringBuilder();\r
84             JavaScriptSerializer serializer = new JavaScriptSerializer();\r
85             serializer.Serialize(message, builder);\r
86             return builder.ToString(1, builder.Length - 2); // remove first + last quote\r
87         }\r
88     }\r
89 }\r