我可以使用以下命令从MVC ASP.NET传递一个变量:
var lastCategoryId = '<%=Model.CS.LastSelectedCategory %>';
这对字符串或整数很好,但我如何处理字符串数组?我试图以相同的方式传递数组但变量设置为System.String []?
您可以通过这一系列简单的代码让.NET为您处理所有繁重的工作.
这假设您使用的是MVC Razor语法.
var yourJavaScriptArray = @Html.Raw(Json.Encode(Model.YourDotNetArray));
对于较新版本的MVC,请使用:
var yourJavaScriptArray = @Html.Raw(Json.Serialize(Model.YourDotNetArray));
你可以JSON序列化它.这种方式可以传递更复杂的值,而不用担心转义简单的引号,双引号等:
var categoriesList = <%= new JavaScriptSerializer().Serialize(new[] { "value1", "value2" }) %>;
编写HTML帮助程序来做到这一点会更好:
public static class HtmlExtensions { public static string JsonSerialize(this HtmlHelper htmlHelper, object value) { return new JavaScriptSerializer().Serialize(value); } }
然后在你看来:
这应该做
var someArray=[<%foreach (var s in myStringArray){%>'<%=s%>',<%}%>];