1 /* ****************************************************************************
\r
3 * Copyright (c) Microsoft Corporation. All rights reserved.
\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
9 * You must not remove this notice, or any other, from this software.
\r
11 * ***************************************************************************/
\r
13 namespace System.Web.Mvc {
\r
15 using System.Diagnostics.CodeAnalysis;
\r
17 using System.Web.Routing;
\r
18 using System.Web.Script.Serialization;
\r
20 public class AjaxHelper {
\r
22 private static string _globalizationScriptPath;
\r
24 public AjaxHelper(ViewContext viewContext, IViewDataContainer viewDataContainer)
\r
25 : this(viewContext, viewDataContainer, RouteTable.Routes) {
\r
28 public AjaxHelper(ViewContext viewContext, IViewDataContainer viewDataContainer, RouteCollection routeCollection) {
\r
29 if (viewContext == null) {
\r
30 throw new ArgumentNullException("viewContext");
\r
32 if (viewDataContainer == null) {
\r
33 throw new ArgumentNullException("viewDataContainer");
\r
35 if (routeCollection == null) {
\r
36 throw new ArgumentNullException("routeCollection");
\r
38 ViewContext = viewContext;
\r
39 ViewDataContainer = viewDataContainer;
\r
40 RouteCollection = routeCollection;
\r
43 public static string GlobalizationScriptPath {
\r
45 if (String.IsNullOrEmpty(_globalizationScriptPath)) {
\r
46 _globalizationScriptPath = "~/Scripts/Globalization";
\r
48 return _globalizationScriptPath;
\r
51 _globalizationScriptPath = value;
\r
55 public RouteCollection RouteCollection {
\r
60 public ViewContext ViewContext {
\r
65 public ViewDataDictionary ViewData {
\r
67 return ViewDataContainer.ViewData;
\r
71 public IViewDataContainer ViewDataContainer {
\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
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