我在我的MVC应用程序文件夹Views/MemberField
中放了一个Index.js和一个Index.css文件。
为这两个文件设置了Copy always
。
我尝试使用以下方式加载它们:
<link href="@Url.Content("~/Views/MemberField/Index.css")" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="@Url.Content("~/Views/MemberField/Index.js")">
给出以下html输出:
<link href="/Views/MemberField/Index.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="/Views/MemberField/Index.js"></script>
到目前为止一切顺利。
但无法访问这两个文件。
The resource cannot be found.
我认为这是因为某些路由机制所以我篡改了我的RouteConfig.cs文件。
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.RouteExistingFiles = false;
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{file}.css");
routes.IgnoreRoute("{file}.js");
routes.MapRoute(
name: "Default"
, url: "{culture}/{controller}/{action}/{id}"
, defaults: new { culture = UrlParameter.Optional, controller = "GlobalSettings", action = "Index", id = UrlParameter.Optional }
, namespaces: new[] { "MygLogWeb" }
);
}
}
但它没有改变一件事。
怎么了?
答案 0 :(得分:3)
好的,修好了。
我看错了路。
Visual Studio在Views文件夹中创建一个web.config文件,其中包含以下行:
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
我只需要改为
<add name="BlockViewHandler" path="*.cshtml" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />