Kur*_*ler 33 javascript asp.net-mvc jquery
我最近一直在使用ASP.NET MVC和Javascript/jQuery,我似乎正朝着一个方向前进,我总是需要将一些动态值传递给我的javascript.当脚本在页面中时,我做了类似这样的事情:
var isEditable = <%=ViewData["editable"]%>
Run Code Online (Sandbox Code Playgroud)
我喜欢这样快速简单,就像我在HTML中注入一个值一样.但这闻起来.真的,非常糟糕.它打破了Visual Studio的智能感知和代码格式化,使我的脚本难以阅读和理解.
在我看来,另一个解决方案是将我的数据传递给隐藏字段,并使用Javascript引用...
<input type="hidden" id="editable" value="<%=ViewData["editable"]%>" />
var isEditable = $("#editable").attr("value");
Run Code Online (Sandbox Code Playgroud)
这可能会更好,因为它保持脚本完整,并允许我将其移动到外部.js文件.但是这个解决方案的某些东西看起来也不理想.还是只是我?
有人可以推荐将数据传递到脚本的解决方案和最佳实践吗?如果我的脚本最终严重依赖控制器中的viewdata,那么我是走错了路吗?
Gab*_*art 11
我有时通过JSON序列化器将配置对象写入页面来将数据传递给我的页面:
var pageConfig = <%= ServerConfig.ToJson() %>;
Run Code Online (Sandbox Code Playgroud)
你需要自己编写ToJson方法的地方.这样可以很好地保存页面状态,因此只有一个位置可以注入服务器值.从现在开始的一切都是纯粹的javascript.在您的示例中,您可以执行以下操作:
var isEditable = pageConfig.isEditable;
Run Code Online (Sandbox Code Playgroud)
即使在外部js文件中,如果pageConfig
是全局的.但是,在这种情况下,您应该正确命名它:MY_APP.pageConfig
也许.
归档时间: |
|
查看次数: |
9892 次 |
最近记录: |