如何在ASPNET.MVC中返回一个空视图?

时间:2011-11-18 10:33:54

标签: asp.net-mvc

我有一个控制器将数据传递给视图:

 public ViewResult Details(int id)

如果id无效,我想返回一个空或错误视图,而不是将数据传递给强类型的详细信息视图,并等待无法到达的数据。

我如何处理一般错误视图?

4 个答案:

答案 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>