MVC3 =>> return EmptyResult()什么时候返回这个好主意?

时间:2011-03-27 20:27:13

标签: asp.net-mvc-3

从控制器

返回“EmptyResult()”是个好主意

7 个答案:

答案 0 :(得分:38)

你基本上会用它来表示你没有对动作做任何事情 结果

来自MSDN:

  

表示不执行任何操作的结果,例如不返回任何内容的控制器操作方法。

我亲自使用了AsyncController中定义的操作,因此如果您有异步操作,例如:

public void SendMailAsync() { }

基本上是AsnycController中的一个动作,你还需要一个xxxCompleted动作(按惯例)

public virtual ActionResult SendMailCompleted
{
    // do whatever
    return new EmptyResult();
}

由于这不是一个意图由用户调用的动作,而是一个后台任务,所以无论如何我都不会对结果做任何事情。

答案 1 :(得分:10)

我在创建RESTful Web服务时使用过它。例如,在执行POST或DELETE操作时,HTTP状态代码本身可以传达足够的信息。

答案 2 :(得分:5)

当ajax执行不需要在UI上进行反射/确认的操作时。

答案 3 :(得分:4)

我假设它与在动作中执行return (null)相同。它有时可能很有用。我在调试时将它用于Response.Write信息到输出,但不需要渲染视图的其余部分。

当你使用它时,你会得到一个空白的白页,上面没有任何内容,除非你输出自己的东西。

答案 4 :(得分:3)

例如:您可以返回状态为401的空结果。

答案 5 :(得分:2)

对于.NET Core解决方案(在v2.1中测试),请使用:

return StatusCode(StatusCodes.Status204NoContent);

这将返回StatusCodeResult,其中包含相应的HTTP状态代码 204 No Content

答案 6 :(得分:1)

EmptyResult是MVC中的一个类,它不返回任何内容,如Void方法。

如果要执行在控制器操作方法内部写入的逻辑但不希望任何结果返回到视图,则使用EmptyResult,则EmptyResult返回类型非常重要。 它不需要添加视图。