我是ASP.NET MVC的新手,我在脚本方面遇到了一些麻烦...特别是我想在大多数页面中使用jQuery,所以将它放在母版页中是有意义的.但是,如果我这样做(来自我~/Views/Shared/Site.Master
):
那么这就是客户端的真实情况 - 当然只有在我们当前的路线恰好具有正确数量的水平时才有效.开始~/Scripts/...
不起作用.与启动/Scripts/...
,如果这个项目是在站点根(我不想承担)只会工作.
我有一种工作方法(我将在下面发布) - 但是:我错过了什么吗?
我宁愿不必涉及脚本管理器,因为这似乎打败了ASP.NET MVC模型的简单性......或者我担心太多了?
这是我可以使它工作的方式,这也适用于非平凡的虚拟 - 但它似乎过于复杂:
Eduardo Camp.. 45
我有一个AppHelper类,其中包含一些添加脚本引用的方法:
public static string ReferenceScript(string scriptFile) { var filePath = VirtualPathUtility.ToAbsolute("~/Scripts/" + scriptFile); return ""; }
所以在你的母版页中你可以使用:
<%= AppHelper.ReferenceScript("jquery-1.2.6.js") %>
我喜欢这个; 对于通用API,我现在使用HtmlHelper上的扩展方法做了类似的事情,但+1 (6认同)
superlogical.. 36
我认为最简单的方法是使用以下内容,它在视图中工作.
为什么要打扰任何其他方法?这是最简单和最好的. (4认同)
Marc Gravell.. 20
基于其他回复,也许是Html上的扩展方法(对于MVC来说很常见),类似于Eduardo的回答:
<%=Html.Script("~/Scripts/jquery-1.2.6.js")%>
附:
public static string Script(this HtmlHelper html, string path) { var filePath = VirtualPathUtility.ToAbsolute(path); return ""; }
OJ... 10
为什么不直接将您的母版页指向Google的js文件托管?那么即使在部署方面(假设您的网站面向网络),您可以滥用可能预先缓存的jquery文件?
我有一个AppHelper类,其中包含一些添加脚本引用的方法:
public static string ReferenceScript(string scriptFile) { var filePath = VirtualPathUtility.ToAbsolute("~/Scripts/" + scriptFile); return ""; }
所以在你的母版页中你可以使用:
<%= AppHelper.ReferenceScript("jquery-1.2.6.js") %>
我认为最简单的方法是使用以下内容,它在视图中工作.
基于其他回复,也许是Html上的扩展方法(对于MVC来说很常见),类似于Eduardo的回答:
<%=Html.Script("~/Scripts/jquery-1.2.6.js")%>
附:
public static string Script(this HtmlHelper html, string path) { var filePath = VirtualPathUtility.ToAbsolute(path); return ""; }
为什么不直接将您的母版页指向Google的js文件托管?那么即使在部署方面(假设您的网站面向网络),您可以滥用可能预先缓存的jquery文件?