You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.Net更换Razor(.cshtml)文件后GET请求出现403错误求助

解决jQuery viewLoader请求Razor视图(.cshtml)的403/404问题

我之前做项目迁移的时候也碰到过一模一样的坑,来给你拆解下问题根源和解决办法:

为什么会出现这些错误?

  • 403禁止访问:ASP.NET(不管是MVC还是Core)默认是不允许客户端直接请求.cshtml文件的,因为Razor视图是需要服务器端解析处理(比如执行里面的C#代码、绑定模型数据)后才能生成HTML输出的,它不是静态资源,直接访问会被服务器拦截返回403。
  • 404找不到:你已经把原来的.html文件改成.cshtml了,原来的.html路径自然找不到对应文件,返回404是必然的。

正确的解决办法(推荐符合ASP.NET设计模式的方案)

核心思路是通过控制器Action来返回Razor视图,而不是直接请求.cshtml文件本身:

1. 在控制器中添加对应Action

假设你用的是ASP.NET MVC,在HomeController里新增一个Action来返回你的ED.cshtml视图:

public ActionResult ED()
{
    // 如果需要给视图传递模型数据,可以在这里处理逻辑
    // 比如:var model = new CartModel(); return View(model);
    return View("~/Views/Home/Carts/ED.cshtml");
}

如果是ASP.NET Core,写法类似,只是返回类型用IActionResult:

public IActionResult ED()
{
    return View("~/Views/Home/Carts/ED.cshtml");
}

2. 修改前端请求路径

把原来直接指向.cshtml的src改成指向这个Action的路由地址:

var cartContainerScript = `<script id='CartContainerTemplate' type='text/html' src='/Home/ED'></script>`;

这样当jQuery发起GET请求时,服务器会先通过控制器解析Razor视图,把处理后的HTML内容返回给客户端,就不会再出现403或404错误了。

备选方案(不推荐,有安全风险)

如果实在不想新增Action,也可以配置服务器让.cshtml文件被直接解析返回,但这种方式会暴露视图里的Razor代码(如果有敏感逻辑的话),不建议在生产环境使用:

针对ASP.NET MVC

在项目根目录的web.config里,找到<system.webServer>节点,添加如下配置:

<handlers>
  <add name="cshtmlHandler" path="*.cshtml" verb="GET" type="System.Web.Handlers.PageHandlerFactory" resourceType="Unspecified" />
</handlers>

同时确保你的.cshtml文件的生成操作设置为Content(右键文件 → 属性 → 生成操作)。

针对ASP.NET Core

需要在Program.cs里添加静态文件中间件的配置,允许解析.cshtml:

app.UseStaticFiles(new StaticFileOptions
{
    ContentTypeProvider = new FileExtensionContentTypeProvider
    {
        Mappings = { [".cshtml"] = "text/html" }
    }
});

但还是要强调,这种方式违背了ASP.NET的MVC设计原则,尽量用第一种方案。

额外注意点

  • 确认你的路由配置是正常的,比如默认路由{controller}/{action}/{id}是否启用,确保/Home/ED能正确映射到对应的Action。
  • 如果你的视图有布局页(_Layout.cshtml),但你只想返回视图本身的内容,可以在Action里用return PartialView()代替return View(),避免返回整个布局结构。

内容的提问来源于stack exchange,提问作者Rice

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 02:28:48