我正在ASP.NET MVC中建立一个网站.我试图在javascript中访问ViewData.
有没有什么办法,我可以访问一个字符串值使用在View中存储在控制器操作中的视图中的JavaScript. (我无法弄清楚正确的语法).
我想做一些像…
var str = ViewData["Text"];
我试过以下:
var str =<%= ViewData [“Text”]%>
但它没有奏效.
有人可以帮忙.
谢谢.
解决方法
像这样(剃刀):
var str = @Html.Raw(Json.Encode(ViewData["Text"]));
或(WebForms),使用JavaScriptSerializer(并在将profper命名空间导入到Webform – System.Web.Script.Serialization)之后:
var str = <%= new JavaScriptSerializer().Serialize(ViewData["Text"])) %>;
请不要在ASP.NET MVC应用程序中使用ViewData.使用视图模型和强类型视图,以便您的代码如下所示:
var str = <%= new JavaScriptSerializer().Serialize(Model.Text) %>;
这种技术更加冷静,因为您可以将JSON序列化为整个视图模型:
var model = <%= new JavaScriptSerializer().Serialize(Model) %>; var str = model.Text;