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 使用 Web API 返回 Razor 视图