[asp.net-mvc]获取的 MVC 视图文件夹路径

发布时间: 2017/3/25 1:44:06
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有此角的模块,并且想要指向我 Index.cshtml 作为其这样的模板文件︰

angular.module('whatever', [whatever.Provider])
        .config([
            "whateverProvider", function(whateverProvider) {
                whateverProvider
                    .Sample('baseWidget', {
                        title: 'Base Widget',
                        templateUrl: "Views/Home/Index.cshtml", // 404
                        controller: "whateverController",
                    });
            }
        ])

我在我的索引页中得到此 404 错误︰

GET http://myLocalDomain/projectFolder/Views/Home/Index.cshtml 404 (Not Found)

所以基本上问题是怎样才能 Index.cshtml 路径吗?

解决方法 1:

与所有 [视图] 文件夹的内容是无法从客户端访问,这由于专门 web.config 具有 [视图] 文件夹里面的文件 BlockViewHandler 处理程序︰

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

cshtml文件不是用于直接从客户端,因为它们可以公开一些服务器端代码是清楚可能存在安全问题。

所以如果你想要发送到客户端的一些模板有两个选项︰

  1. 创建一个静态 html 文件并放一些专门的文件夹中 (类似于您在默认有 MVC 模板的内容文件夹)
  2. 创建一个控制器,会呈现 cshtml 文件并将它们返回到客户端 (这是更昂贵的方式,因为在默认情况下静态文件是直接由 IIS 提供服务不涉及 ASP.NET 管道)
官方微信
官方QQ群
31647020