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

Razor页面能否返回40X状态码?无需控制器实现问询

在Razor视图中直接返回40X状态码(无需创建Controller)

可行。你可以通过直接操作Response对象设置状态码,同时避免IIS默认错误页覆盖自定义内容,以下是具体示例:

404(页面未找到)示例

@{
    Response.StatusCode = 404;
    Response.TrySkipIisCustomErrors = true; // 阻止IIS替换自定义错误内容
}

<h1>404 - 页面未找到</h1>
<p>您请求的页面不存在或已被移除。</p>

403(禁止访问)示例

@{
    Response.StatusCode = 403;
    Response.TrySkipIisCustomErrors = true;
}

<h1>403 - 禁止访问</h1>
<p>您没有权限访问此资源。</p>

立即终止页面渲染(可选)

如果不需要输出任何页面内容,设置状态码后可以调用Response.End()直接终止响应:

@{
    Response.StatusCode = 404;
    Response.TrySkipIisCustomErrors = true;
    Response.End();
}

为什么之前的方法无效

  • NotFound()是Controller基类中的方法,Razor视图无法直接调用该方法。
  • 直接操作Response时,需通过设置StatusCode属性指定状态码,而非调用方法,这和WebForms的操作逻辑略有区别。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 08:12:02