2009-10-14 28 views
0

我已经将视图的一些javascript重构到视图旁边的.js文件中(而不是在根目录下的脚本文件夹中)。在ASP.NET MVC中,如何从我的视图文件夹加载脚本?

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

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

不过,我想重写它,从而让浏览器从这一位置请求.js文件。

有谁知道我该怎么做?

谢谢, 马克。

+0

为什么不按照惯例使用脚本文件夹?毕竟,javascript并不是一个视图。 – 2009-10-14 13:35:17

回答

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> 

你需要添加你想保持阻止每个文件类型的扩展名。

+0

谢谢。是的,我希望避免这种情况... ...耻辱没有'exclude =“*。js”'公约来帮助我。 – Kram 2009-10-15 15:57:43

1

您可以将路径属性更改为比“*”(所有内容)更全面的内容,但您为什么要与框架的约定作斗争?视图文件夹旨在组织(仅)视图文件,具体而言是而不是,意在直接从外部访问。有什么理由不能将你的应用中的脚本文件放在其他地方?

+1

但是,感谢我的视图的客户端脚本,这是我视图的一部分,仅仅因为我想将它重构为单独的文件并不意味着它需要在其他地方生活IMO。摔跤几个讨厌的惯例不分昼夜。 – Kram 2009-10-15 15:55:38

+0

嘿,当然,这是你的项目。看起来似乎也可以为其他所有网站资源做出相同的论述:其他脚本,图片,CSS,......您将一直在与框架作斗争。但你*可以*做到这一点。 – 2009-10-15 16:32:42

相关问题