ViewResult或ActionResult |如果ActionResult对所有事情都有好处,那么使用ViewResult是否有意义?

时间:2010-03-20 20:17:42

标签: c# .net asp.net-mvc

在asp.net mvc中有ViewResult用于返回一个View和ActionResult来返回你想要的任何东西,所以当我确定我会返回一个View时,为什么我应该使用ViewResult而不是ActionResult呢? / p>

5 个答案:

答案 0 :(得分:12)

ActionResult是一般基类,所有其他结果都来自ViewResultJsonResult等。

这样,您可以从同一方法返回多种类型的结果,如JSON和XML。

答案 1 :(得分:6)

出于同样的原因,你不会写每个类的每个方法来返回“对象”。你应该尽可能具体。如果您计划编写单元测试,这尤其有用。不再需要测试返回类型和/或转换结果。

答案 2 :(得分:4)

您应该使用ViewResult使代码更具可读性并更容易发现错误,但也可以有其他好处。

由于我使用POST-REDIRECT-GET模式,我编写了一些测试来检查每个[HttpPost]方法是否返回RedirectToRouteResult。如果我在[HttpPost]方法中定义其他类型的结果,它会自动不通过测试。这可以防止我在post方法中返回View(模型)。

答案 3 :(得分:0)

如果要进行单元测试,请在控制器中将其从ActionResult更改为ViewResult。那么你将在你的测试控制器中拥有智能感知,生活是美好的。

答案 4 :(得分:0)

我几天前不小心得到了同样的问题,谷歌很快就来帮忙。基本上这里没有性能问题,如果有的话就是编码问题。

这是一篇简短但有用的博文:http://www.techiesblog.com/post/2862100163/viewresult-vs-actionresult-asp-net-mvc