将数据从asp.net-mvc传递到javascript的最佳做法

我一直在使用ASP.NET MVC和Javascript / jQuery很多,我似乎在一个方向,我总是需要通过一些动态值“到”我的javascript标题。当脚本在页面中是正确的,我做了这样的:

var isEditable = <%=ViewData["editable"]%>

我喜欢这是快速&容易,就像我会注入一个值到HTML。但这味道。真的,真的很糟糕。它打破了Visual Studio的intellisense和代码格式,使我的脚本很难阅读和理解。

它发生了我另一个解决方案是将我的数据传递到一个隐藏字段,并有Javascript引用…

<input type="hidden" id="editable" value="<%=ViewData["editable"]%>" />
var isEditable = $("#editable").attr("value");

这可能是更好的,因为它保持脚本完好无损,并允许我将其移动到外部.js文件。但是这个解决方案似乎也不理想。还是只是我?

任何人都可以推荐解决方案&将数据传递到脚本的最佳实践?如果我的脚本最终严重依赖于我的控制器的viewdata首先,我走错了错误的路径?

最佳答案
我有时通过一个配置对象通过JSON序列化程序传递数据到我的页面:

var pageConfig = <%= ServerConfig.ToJson() %>;

在哪里你需要自己写ToJson方法。这保持页面状态很好地包含,所以只有一个地方,您注入服务器值。从这里开始的一切都是纯javascript。在你的例子中,你可以:

var isEditable = pageConfig.isEditable;

即使在外部js文件中,如果pageConfig是全局的。在这种情况下,你应该正确命名空间:MY_APP.pageConfig。

转载注明原文:将数据从asp.net-mvc传递到javascript的最佳做法 - 代码日志