我有一个控制器将数据传递给视图:
public ViewResult Details(int id)
如果id无效,我想返回一个空或错误视图,而不是将数据传递给强类型的详细信息视图,并等待无法到达的数据。
我如何处理一般错误视图?
答案 0 :(得分:1)
我们的基本控制器上有一个错误操作,真正的控制器继承。如果输入验证失败,请重定向到错误操作,传递将在视图中显示的一些错误消息文本。这允许您在所有控制器操作中具有标准错误视图。
答案 1 :(得分:1)
您可以重定向到您想要的任何视图:
return View("Error", "This is a error message");
上面的代码将重定向到Error.cshtml视图并传递带有消息的字符串。
答案 2 :(得分:1)
只需根据需要返回错误视图:
if( // id is invalid)
{
return View("MyErrorView");
}
答案 3 :(得分:1)
如果ID无效,请不要返回空内容,这实际上是HTTP状态404的典型故事 - 未找到 - 在MVC中,您可以轻松处理,如下所示:
if (IdIsInvalid(id))
return HttpNotFound();
作为替代方案,您可以致电
throw new HttpException(404, "NotFound");
并全局处理您的404错误,例如在web.config中设置:
<configuration>
<system.web>
<customErrors mode="On">
<error statusCode="404" redirect="~/NotFound"/>
</customErrors>
</system.web>