MVC简单错误处理BadRequest
本文关键字:BadRequest 处理 错误 简单 MVC | 更新日期: 2023-09-27 18:01:48
我尝试了很多方法,但还是没能成功。只想在请求无效时显示404/500。
例如。没有用户Id=100,如果有人提出这个请求,它应该返回404。另一方面,如果发生服务器错误,则抛出500。
我希望此行为应用于整个应用程序。
public ActionResult EditUser(int Id)
{
var db = new UserDbContext();
var usr = db.Users.Where(a => a.Id == Id).SingleOrDefault();
if (usr == null) return new HttpStatusCodeResult(HttpStatusCode.NotFound, "User not found");
return View(usr);
}
在system.web 中使用webconfig
<customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="~/General">
<error statusCode="404" redirect="~/NotFound" />
<error statusCode="403" redirect="~/BadRequest" />
</customErrors>
以及在system.webserver 中
<httpErrors existingResponse="PassThrough"></httpErrors>
尝试了许多组合方式,无法使其发挥作用。我得到的结果是一个空页面,然后浏览器控制台显示404/500错误。但我希望它能在页面上显示出来。
有人可以指出我的错误。感谢
您可以使用
throw new HttpException(404, "HTTP/1.1 404 Not Found");
或
return HttpNotFound();
或返回错误视图表单共享文件夹
return View("NotFound");
您可以添加
public ActionResult EditUser(int Id)
{
var db = new UserDbContext();
var usr = db.Users.Where(a => a.Id == Id).SingleOrDefault();
if (usr == null) return new HttpStatusCodeResult(HttpStatusCode.NotFound, "User not found");
Response.StatusCode = 400;
return View(usr);
}
只抛出/返回HTTP异常,如下所示:
CCD_ 1。
或CCD_ 2用于ASP。NET MVC 3及以上版本。
或适用于MVC 4及以上版本的CCD_ 3。