在ASP.NET MVC中,如何从视图文件夹中加载脚本?

时间:2009-10-14 13:23:27

标签: asp.net-mvc web-config

我已将我的一些View的javascript重构为.js文件和视图(不在根目录下的Scripts文件夹中)。

默认情况下,视图的web.config中的处理程序会停止加载这些处理程序:

<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler"/>

但是,我想覆盖它以允许浏览器从此位置请求.js文件。

有谁知道我该怎么做?

谢谢, 标记

2 个答案:

答案 0 :(得分:2)

我想我会将脚本留在脚本位置,但如果你想移动它们,你可以执行以下操作:

在视图下的web.config文件的顶部查找

<httpHandlers>
  <add path="*" verb="*"
      type="System.Web.HttpNotFoundHandler"/>
</httpHandlers>

并将其替换为以下内容:

<httpHandlers>
  <add path="*.aspx" verb="*"
      type="System.Web.HttpNotFoundHandler"/>
    <add path="*.master" verb="*"
        type="System.Web.HttpNotFoundHandler"/>
    <add path="*.ascx" verb="*"
        type="System.Web.HttpNotFoundHandler"/>
</httpHandlers>

您需要添加要阻止的每种文件类型的扩展名。

答案 1 :(得分:1)

您可以将路径属性更改为比“*”(所有内容)更全面的内容,但为什么要与框架的约定作斗争? Views文件夹旨在(仅)组织视图文件,并且特别是 not 意味着可以直接从外部访问。您有什么理由不能将这些脚本文件放在应用程序的其他位置吗?