ASP.NET MVC在javascript中使用ViewData

时间:2011-05-02 22:18:38

标签: javascript asp.net-mvc

我目前正在ASP.NET MVC中构建一个网站。我试图在javascript中访问ViewData。

在Controller Action中存储在ViewData中的View中,是否可以使用javascript访问字符串值? (我无法弄清楚正确的语法)。

我希望做点像......


var str = ViewData["Text"];

我尝试了以下内容:

var str =<%= ViewData [“Text”]%>

但它不起作用。

有人可以帮忙。

感谢。

2 个答案:

答案 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"] %>';