2011-12-12 85 views
2

我仍然发现自己不得不在我的.aspx文件中声明全局变量(该项目在剃刀前启动)。例如,我必须在我的.aspx文件中声明这样的全局JavaScript变量:js文件中的ASP.NET MVC脚本

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

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

有没有更好的方法?

+0

没有必要为使用WebForms道歉,仍然有很多理由使用它在Razor上。 –

回答

3

有没有更好的方法?

这没有什么错。

就我个人而言,我在稍后在脚本中处理的某些DOM元素上使用HTML5数据属性。例如:

<div id="foo" data-url="<%= Url.Action("GetDistributionList", "PublicDocument") %>"> 
    Hello 
</div> 

,然后在我的JS:

$('#foo').click(function() { 
    var url = $(this).data('url'); 
    ... 
}); 

但在的情况下,99.99%的URL与任何<form>元素或链接的HREF所以在我的javascript我只检索和使用有关这个值当我需要对给定的DOM元素进行渐进式增强时(比如不显眼的AJAX化表单或锚点)。