【问题标题】:Correct way to reference Javascript in ASP.NET MVC?在 ASP.NET MVC 中引用 Javascript 的正确方法?
【发布时间】:2010-10-30 13:58:01
【问题描述】:

在 ASP.NET MVC 中引用 Javascript 的正确方法是什么?使用 ../../Scripts/Myscript.js 之类的东西似乎适用于传统的 {controller}/{action}/{id} 路由,但对于任何或多或少复杂的东西来说都更脆弱。更令人担忧的是,理性绝对引用 (/Scripts/Myscript.js) 会破坏 Visual Studio 中的 Intellisense。

你是怎么处理的?

编辑:这显然是一个非常古老的问题,但我正在编辑中提到在 MVC4 中,您所需要的只是:

src="~/Scripts/Whatever.js"

这足以让 Razor 使用根路径找出您的意思。

【问题讨论】:

    标签: asp.net javascript asp.net-mvc


    【解决方案1】:

    如果其他人发现这个答案是使用 MVC Razor,下面是它的语法:

    <script type="text/javascript" src="@Url.Content("/Scripts/MyScript.js")"></script>
    

    【讨论】:

    • 在 MVC4 中,您所需要的只是 src="~/Scripts/Myscript.js",Razor 会解决的。
    【解决方案2】:

    我创建了自己的 HtmlHelper 扩展,如下所示:

    public static string MEScriptBlock(this HtmlHelper html, string path, string releasePath)
    {
    #if DEBUG
    #else
        if (!string.IsNullOrEmpty(releasePath))
            path = releasePath;
    #endif
    
        return string.Format("<script type=\"text/javascript\" src=\"{0}\"></script>\r\n",
                             path);
    }
    

    如果智能感知是你的目标,你可以欺骗 VS 认为 JS 文件已加载...例如

    <% if (false)
       { %>
        <script src="../../Scripts/Myscript.js" type="text/javascript"></script>
    <% } %>
    

    HTH, 查尔斯

    【讨论】:

      【解决方案3】:

      我自己目前为此使用 mvccontrib htmlhelpers。

      This 也很有用。

      【讨论】:

        【解决方案4】:

        我也和CMerat一样引用js:

        <script type="text/javascript" src="<% =Url.Content("~/Scripts/jquery-1.3.2.min.js") %>"></script>
        

        如果你需要 jquery 的 Intellisense,你可以找到instructions on how to set it up here。据我所知,您无法为您引用的任何自定义 js 文件获取 Intellisense - 您需要先为其创建 Intellisense 文件。

        【讨论】:

        • 我知道 Scott 的指示,但我从这些回复中得到的是,无法正确引用脚本 并且让 Intellisense 对支持的文件工作它(如 jQuery),而不是使用 ScriptManager。
        • 这是有道理的。因为自动智能感知(如果你想这样称呼它)只是远离它可以在页面中看到的脚本。由于您的脚本“链接”它绑定较晚,因此 IDE 在设计时不知道它的内容。
        【解决方案5】:

        &lt;script src="&lt;%= Url.Content("~/Scripts/Myscript.js") %&gt;" type="text/javascript"&gt;&lt;/script&gt;

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-07-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-11-17
          • 1970-01-01
          相关资源
          最近更新 更多