ASP.NET MVC 返回空视图

Posted

技术标签:

【中文标题】ASP.NET MVC 返回空视图【英文标题】:ASP.NET MVC return empty view 【发布时间】:2011-10-15 00:23:24 【问题描述】:

返回空的 ActionResult(对于子操作)最自然的方式是什么?

public ActionResult TestAction(bool returnValue)

   if (!returnValue)
     return View(EmptyView);

   return View(RealView);

我可以看到的一个选项是创建一个空视图并在 EmptyView 中引用它...但可能有任何内置选项吗?

【问题讨论】:

难道 View() 没有返回文本的选项吗?如果是,发送一个空字符串。 【参考方案1】:

返回EmptyResult class的实例

 return new EmptyResult();

【讨论】:

在一个返回EmptyResult的action中,是否和return null一样? @RobinMaben:不,null 不会从该方法返回对象。 EmptyResult 但是会。 我会返回 null,因为在内部,它将使用您自己无法访问的 internal EmptyResult.Instance。这样可以节省无状态对象的重复实例化。【参考方案2】:

您可以返回EmptyResult 以返回一个空视图。

public ActionResult Empty()

    return new EmptyResult();

您也可以直接返回null。 ASP.NET 将detect the return type null and will return an EmptyResult for you。

public ActionResult Empty()

    return null;

请参阅MSDN documentation for ActionResult 了解您可以返回的 ActionResult 类型列表。

【讨论】:

【参考方案3】:

如果你不想返回任何东西,你可以做类似的事情

if (!returnValue)
     return Content("");

   return View(RealView);

【讨论】:

return new EmptyResult();是首选方法

以上是关于ASP.NET MVC 返回空视图的主要内容,如果未能解决你的问题,请参考以下文章

将 JSON 从视图发送到控制器 ASP.NET MVC 会给出空值

asp.net mvc,以 JSON 形式返回多个视图

ASP.NEt MVC 使用 Web API 返回 Razor 视图

ASP.NET MVC3 双重验证(逗号、点、空)

Asp.net MVC 与 Asp.net Web API 区别

如何在 ASP.NET MVC 视图中返回当前操作?