Pau*_*les 135 error-handling asp.net-mvc http-status-code-404
我有一个动作,它接受一个用于检索一些数据的字符串.如果此字符串导致没有返回数据(可能因为它已被删除),我想返回404并显示错误页面.
我目前只是使用返回一个特殊视图,该视图显示特定于此操作的友好错误消息,指出未找到该项目.这样可以正常工作,但理想情况下会返回404状态代码,以便搜索引擎知道此内容不再存在,并且可以将其从搜索结果中删除.
最好的方法是什么?
它是否像设置Response.StatusCode = 404一样简单?
Ste*_*ack 144
在ASP.NET MVC 3及更高版本中,您可以从控制器返回HttpNotFoundResult.
return new HttpNotFoundResult("optional description");
Run Code Online (Sandbox Code Playgroud)
Dew*_*wfy 105
有多种方法可以做到,
throw new HttpException(404, "Some description");Gon*_*ing 59
在MVC 4及更高版本中,您可以使用内置的HttpNotFound帮助器方法:
if (notWhatIExpected)
{
return HttpNotFound();
}
Run Code Online (Sandbox Code Playgroud)
要么
if (notWhatIExpected)
{
return HttpNotFound("I did not find message goes here");
}
Run Code Online (Sandbox Code Playgroud)
小智 25
代码:
if (id == null)
{
throw new HttpException(404, "Your error message");//RedirectTo NoFoundPage
}
Run Code Online (Sandbox Code Playgroud)
Web.config文件
<customErrors mode="On">
<error statusCode="404" redirect="/Home/NotFound" />
</customErrors>
Run Code Online (Sandbox Code Playgroud)
Wou*_*out 12
我用过这个:
Response.StatusCode = 404;
return null;
Run Code Online (Sandbox Code Playgroud)
在NerdDinner例如.试试吧
public ActionResult Details(int? id) {
if (id == null) {
return new FileNotFoundResult { Message = "No Dinner found due to invalid dinner id" };
}
...
}
Run Code Online (Sandbox Code Playgroud)
在我添加下面的中间行之前,上述示例都不适合我:
public ActionResult FourOhFour()
{
Response.StatusCode = 404;
Response.TrySkipIisCustomErrors = true; // this line made it work
return View();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
88274 次 |
| 最近记录: |