【发布时间】:2011-06-04 18:06:27
【问题描述】:
只是想知道为什么我在示例 MVC 代码中看到的几乎每个控制器方法都返回 ActionResult,即使很明显代码只能返回一种类型的结果。我知道在某些情况下这是有保证的,因为您可能会根据逻辑返回,例如 RedirectResult 或 ViewResult,但对于我见过的大多数方法而言,情况并非如此。
这不就等于在方法上有一个'object'的返回类型吗?为什么不直接指定 JsonResult、FileResult 或 ViewResult 作为返回类型呢?在每个控制器方法上将返回类型设置为 ActionResult 是否有我没有看到的好处?
经典例子:
public ActionResult Index()
{
return View();
}
为什么这似乎是常态而不是这个:
public ViewResult Index()
{
return View();
}
编辑: 到目前为止,除了一个之外的所有响应都表明 ActionResult 更通用。我知道那么多。 :) 为什么这种在控制器方法上被接受的做法,而不是在其他任何地方?您不仅可以在普通方法上返回类型的最高级别基类,还尝试返回通常可以返回的最具体的类型。是什么让控制器方法如此不同,以至于博主和“示例代码编写者”(是的,我提出了这个术语)只会诉诸于返回 ActionResult?
【问题讨论】:
标签: asp.net-mvc