javascript - 在 javascript 中使用 ViewData 的 ASP.NET MVC

标签 javascript asp.net-mvc

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

有什么方法可以让我在存储在 Controller 操作中的 ViewData 中的 View 中使用 javascript 访问字符串值。 (我无法找出正确的语法)。

我想做一些类似的事情..


var str = ViewData["Text"];

我尝试了以下方法:

var str = <%=ViewData["Text"] %>

但是没有成功。

有人可以帮忙吗?

谢谢。

最佳答案

像这样( Razor ):

var str = @Html.Raw(Json.Encode(ViewData["Text"]));

或(WebForms),使用JavaScriptSerializer (并将正确的命名空间导入到您的网络表单后 - System.Web.Script.Serialization):

var str = <%= new JavaScriptSerializer().Serialize(ViewData["Text"])) %>;

并且请不要在 ASP.NET MVC 应用程序中使用 ViewData。使用 View 模型和强类型 View ,使您的代码如下所示:

var str = <%= new JavaScriptSerializer().Serialize(Model.Text) %>;

这种技术更酷,因为现在您可以 JSON 序列化整个 View 模型:

var model = <%= new JavaScriptSerializer().Serialize(Model) %>;
var str = model.Text;

关于javascript - 在 javascript 中使用 ViewData 的 ASP.NET MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5863094/

相关文章:

javascript - 如何通过css制作透明的羽毛首选项

c# - Asp.net MVC 4.5 使用 EditorFor、按钮单击将对象添加到 ViewModel 中的列表

asp.net - 将路由值字典传递给 ActionLink

javascript - 使用日期时间选择器进行日期和时间验证 (ASP.Net MVC Core v1.1)

javascript - 对象数组上的过滤器数组包含 javascript

javascript - 如何使用 html 地理位置和 google map api 获取当前位置

javascript - 为什么我必须单击两次才能使用 jquery 显示 Div?

javascript - 如何在按下月份按钮时删除所有全日历事件?

asp.net-mvc - 找不到 VS2013 浏览器链接 "The controller for path '/9ac086a69364466a841e03e001f946fd/arterySignalR/ping'。”

c# - 模型属性作为空值传递给操作