当前位置:  开发笔记 > 编程语言 > 正文

在ASP.NET MVC的母版页中使用脚本

如何解决《在ASP.NETMVC的母版页中使用脚本》经验,为你挑选了4个好方法。

我是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文件?



1> Eduardo Camp..:

我有一个AppHelper类,其中包含一些添加脚本引用的方法:

public static string ReferenceScript(string scriptFile)
{
    var filePath = VirtualPathUtility.ToAbsolute("~/Scripts/" + scriptFile);
    return "";
}

所以在你的母版页中你可以使用:

<%= AppHelper.ReferenceScript("jquery-1.2.6.js") %>


我喜欢这个; 对于通用API,我现在使用HtmlHelper上的扩展方法做了类似的事情,但+1

2> superlogical..:

我认为最简单的方法是使用以下内容,它在视图中工作.



为什么要打扰任何其他方法?这是最简单和最好的.

3> Marc Gravell..:

基于其他回复,也许是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 "";
}



4> OJ...:

为什么不直接将您的母版页指向Google的js文件托管?那么即使在部署方面(假设您的网站面向网络),您可以滥用可能预先缓存的jquery文件?


假设网络访问谷歌,情况并非总是如此......理想情况下,它只适用于本地网络服务器
完全同意.这纯粹是一个FYI以防万一:)
推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有