【问题标题】:Angular views and ASP.NET MVC Views in the same folderAngular 视图和 ASP.NET MVC 视图位于同一文件夹中
【发布时间】: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


【解决方案1】:

我所做的是创建控制器方法并使用部分视图,所以我的角度视图也是.cshtml。然后,您的角度视图的 url 就是返回部分视图的控制器操作的 url。

【讨论】:

  • 嗯。它掠过我的脑海。我只是认为如果不需要加载控制器和视图引擎,静态 .html 会更快且开销更少。
猜你喜欢
  • 2013-02-23
  • 2010-11-18
  • 1970-01-01
  • 1970-01-01
  • 2011-05-31
  • 2010-12-29
  • 1970-01-01
  • 1970-01-01
  • 2010-09-09
相关资源
最近更新 更多