【问题标题】:ASP.Net 403 error when adding new razor .cshtml file type添加新的 razor .cshtml 文件类型时出现 ASP.Net 403 错误
【发布时间】:2018-09-21 22:09:15
【问题描述】:

我在通过 JQuery viewLoader GET 请求请求视图的环境中工作。我正在尝试将所有 .html 移植到 Razor (.cshtml),当我将 src 属性的扩展名更改为 .cshtml 时,我始终从客户端收到 403 错误。请注意,我这样做是因为如果我将请求保留为 .html,我会得到 404(我认为 cshtml 会自己作为 html 服务?):

var cartContainerScript = <script id='CartContainerTemplate' type='text/html' src='./Views/Home/Carts/ED.cshtml' ></script>

$("body").append(cartContainerScript);
cartTemplate = $("script[id=" + 'CartContainerTemplate' + "]");

   cartContainer.viewloader({
        logLevel: "debug",
        scripts: cartTemplate,
        success: function (resolution) {
               //Do good stuff
        },
        error: function (failedResolution) {
            // 403 occurs @ jquery-1.8.3.min.js:2 -> GET http://application.company.com/Views/Home/Carts/ED.cshtml 403 (Forbidden)
        }
    });

我尝试在我的 Views/Web.config 文件中以下 HTTP 路由的最后一行添加一个 *.cshtml 条目,但没有成功:

<httpHandlers>
  <add path="*.aspx;*.ascx" verb="*" type="System.Web.HttpNotFoundHandler"/>
  <remove path="*.view.html" verb="*"  />
  <remove path="Carts\*.html" verb="*"  />
  <remove path="Carts\*.cshtml" verb="*"  />
</httpHandlers>

编译后是否可以将 Razor 文件作为 html 提供?也许我的 web.config 中缺少某些内容?

感谢收看!

【问题讨论】:

    标签: c# jquery asp.net-mvc iis razor


    【解决方案1】:

    就我而言,我必须将 &lt;modules&gt; 更改为
    &lt;modules runAllManagedModulesForAllRequests="true"&gt;

    <system.webServer>
        ...
        <modules> => <modules runAllManagedModulesForAllRequests="true">
        ...
    </system.webServer>
    

    此 Web.config 位于根目录,而不是 Views 目录中的那个。

    但是,如果没有 IIS 设置和 Web.Config 详细信息,很难判断会导致此问题的原因。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-09
      • 1970-01-01
      • 1970-01-01
      • 2018-10-19
      • 2013-11-12
      • 1970-01-01
      相关资源
      最近更新 更多