我仍然发现自己必须在我的.aspx文件中声明全局变量(该项目是在razor之前启动的)。例如,我必须在我的.aspx文件中声明这样的全局javascript变量:
var getDistributionListUrl = '<%= Url.Action("GetDistributionList", "PublicDocument") %>';
然后我可以在我的.js文件中引用这个变量。
有更好的方法吗?
答案 0 :(得分:3)
有更好的方法吗?
这没有任何问题。
我个人在我的脚本中稍后操作的一些DOM元素上使用HTML5 data- *属性。例如:
<div id="foo" data-url="<%= Url.Action("GetDistributionList", "PublicDocument") %>">
Hello
</div>
然后在我的js:
$('#foo').click(function() {
var url = $(this).data('url');
...
});
但是在99.99%的情况下,这些网址与<form>
元素或链接href相关联,所以在我的javascript中,当我需要对给定的DOM元素进行渐进式增强时,我只需检索并使用此值(像不引人注目的AJAXifying表格或锚点。)