我目前正在ASP.NET MVC中构建一个网站。我试图在javascript中访问ViewData。
在Controller Action中存储在ViewData中的View中,是否可以使用javascript访问字符串值? (我无法弄清楚正确的语法)。
我希望做点像......
var str = ViewData["Text"];
我尝试了以下内容:
var str =<%= ViewData [“Text”]%>
但它不起作用。
有人可以帮忙。
感谢。
答案 0 :(得分:52)
像这样(剃刀):
var str = @Html.Raw(Json.Encode(ViewData["Text"]));
或(WebForms),使用JavaScriptSerializer(以及将proper命名空间导入到您的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;
答案 1 :(得分:10)
应该是:
var str = '<%= ViewData["Text"] %>';