如果我有以下控制器动作...
public void DoSomething()
{
}
框架会实际将其转换为此吗?
public EmptyResult DoSomething()
{
return new EmptyResult();
}
Answers:
似乎如此,请检查ControllerActionInvoker.cs的源代码。我尚未验证它,但是逻辑告诉我,无效返回将把actionReturnValue设置为null,因此将生成EmptyResult。这是最新的源代码,尚未检查ASP.net MVC 1.0的源代码。
protected virtual ActionResult CreateActionResult(ControllerContext controllerContext, ActionDescriptor actionDescriptor, object actionReturnValue) {
if (actionReturnValue == null) {
return new EmptyResult();
}
ActionResult actionResult = (actionReturnValue as ActionResult) ??
new ContentResult { Content = Convert.ToString(actionReturnValue, CultureInfo.InvariantCulture) };
return actionResult;
}
它不会“转换”它,但是就用户而言,两者将具有相同的效果。将发送一个请求,但是没有响应返回给客户端。
就我个人而言,我认为您需要将一些响应发送回客户端,即使您只是直接将继续或成功消息写入响应流中也是如此。甚至JSONtrue
或空XML文档总比没有好。