作为ASP.NET MVC的新手,我一直想知道Controller方法的签名。 在我见过的所有例子中,他们似乎总是返回ActionResult,即使他们实际返回一个ViewResult实例或类似的东西。 这是一个常见的例子: public ActionResult Index() { return this.View(); } 在这种情况下,将方法声明为public ViewResult Index()并获得更强的types支持是否更有意义? 实验表明,这是有效的,所以它似乎是可能的。 我意识到可能会出现多态性需要的情况(例如,如果只想在某些情况下redirect,但在其他情况下显示视图),但是如果方法总是返回一个视图,我会发现ViewResult更多可取的。 在未来的兼容性方面,ActionResult显然提供了一个更强大的签名,但是如果一个人控制整个代码库,那么总是可以将方法的签名更改为更一般的返回types(如果将来有必要的话)。 是我还没有意识到的任何其他考虑,或者我应该继续前进,并与特定的返回types声明我的控制器方法?