添加新的 razor .cshtml 文件类型时 ASP.Net 403 错误



我正在一个通过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 中缺少一些东西?

感谢您的观看!

就我而言,我必须将<modules>
更改为<modules runAllManagedModulesForAllRequests="true">

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

此 Web.config 位于根目录中,而不是视图目录中的目录。

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

最新更新