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

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

public ActionResult TestAction(bool returnValue)
{
   if (!returnValue)
     return View(EmptyView);

   return View(RealView);
}

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

【问题讨论】:

  • 难道 View() 没有返回文本的选项吗?如果是,发送一个空字符串。

标签: asp.net-mvc


【解决方案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();是首选方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-20
    • 2012-09-16
    相关资源
    最近更新 更多