在我的mvc 3应用程序中,假设我有一个像\Views\Account\js\custom.js
这样的文件夹结构如何在Account\index.cshtml
中将该文件添加到我的视图中?
我试过了:
<script src="js/custom.js" type="text/javascript"></script>
<script src="/views/account/js/custom.js" type="text/javascript"></script>
<script src="~views/account/js/custom.js" type="text/javascript"></script>
但似乎没有任何效果,firebug总是说在我指定的地方找不到404文件。 (有时它会在路径中添加额外的视图:-s)
我知道我可以将它放在我自己文件夹中的视图之外并像/myFolder/myfile.js
一样访问它并且它可以工作但是这个javascript文件与帐户视图中发生的事情非常密切相关,所以它将它放在那里是有意义的..
感谢。
答案 0 :(得分:16)
默认情况下,/ Views文件夹中的web.config
文件限制对文件夹中文件的所有访问:
<httpHandlers>
<add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
</httpHandlers>
您可以更改它,但总体上可能更安全,不将资源存储在views文件夹中。
答案 1 :(得分:2)
您可以使用UrlHelper
:
<script src="@Url.Content("~/view/account/js/custom.js")" type="text/javascript"></script>
答案 2 :(得分:0)
最好的方法是使用T4MVC - http://mvccontrib.codeplex.com/wikipage?title=T4MVC 不需要使用魔术弦......
答案 3 :(得分:0)
在您的视图下添加此web.config处理程序部分
<add name="JavaScriptHandler" path="*.js" verb="*" preCondition="integratedMode" type="System.Web.StaticFileHandler" />