【发布时间】:2014-04-28 17:15:57
【问题描述】:
我正在使用 Angular 和 ASP.NET MVC 开发应用程序。我想将一些 Angular 部分和 MVC 部分保留在同一个文件夹中,因为它们在逻辑上是相关的。例如:
- /MyApp/Widgets/Image-config.html
- /MyApp/Widgets/Image-designer.html
- /MyApp/Widgets/Image.cshtml
通过将其添加到 Global.asax,我能够将 Widgets 文件夹用作共享部分文件夹:
ViewEngines.Engines.Add(new RazorViewEngine
{
PartialViewLocationFormats = new string[]
{
"~/Widgets/{0}.cshtml",
"~/Views/{1}/{0}.cshtml",
"~/Views/Shared/{0}.cshtml"
}
});
然后从默认的 Views 文件夹中复制 web.config。
但是,现在当 Angular 去获取 .html 模板时,我得到了 404。有什么方法可以配置 Widgets 文件夹,使其既可以提供静态文件,又可以作为我的服务器端部分视图的位置?
【问题讨论】:
-
问题是 ASP.NET MVC 默认添加到 Views 文件夹的 web.config 文件。此配置文件中的配置设置将所有请求映射到“未找到”处理程序。这个想法是 MVC 视图不应该接收直接请求,该请求应该始终通过控制器。您要么必须删除该配置,要么将其更改为仅拒绝对 .cshtml 文件的请求。
标签: asp.net-mvc angularjs