ASP.NET MVC脚本在js文件中

时间:2011-12-12 12:28:02

标签: asp.net-mvc

我仍然发现自己必须在我的.aspx文件中声明全局变量(该项目是在razor之前启动的)。例如,我必须在我的.aspx文件中声明这样的全局javascript变量:

var getDistributionListUrl = '<%= Url.Action("GetDistributionList", "PublicDocument") %>';

然后我可以在我的.js文件中引用这个变量。

有更好的方法吗?

1 个答案:

答案 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表格或锚点。)