Man*_*ani 5 asp.net-mvc asp.net-mvc-3
如何决定是使用ActionResult还是ViewResult?我知道ActionResult是一个以ViewResult作为子类型的抽象类,但我已经看到了将这两个用于相同功能的示例.它们之间有什么区别吗?
Ehs*_*jad 19
ActionResult是基类型,ViewResult而是子类型ActionResult.
设置Action的返回类型时ActionResult,可以返回它的任何子类型,例如Json,PartialView,View,RedirectToAction.
但是当您使用子类型时,就像在这种情况下一样,ViewResult您将操作它将仅返回子类型作为结果,在本例中为View.
当您使用ActionResult返回类型时,您可以从Action返回以下内容(这意味着以下是ActionResult的子类型),如forums.asp.net中所述:
ActionResult是一个通用结果类型,可以有几个子类型(来自"ASP.NET MVC 1.0 Quickly" Book):
a)ViewResult
将指定的视图呈现给响应流
b)PartialViewResult
将指定的部分视图呈现给响应流
c)EmptyResult
基本上什么都不做; 给出一个空的回应
d)RedirectResult
执行HTTP重定向到指定的URL
e)RedirectToRouteResult
根据给定的路由数据,对路由引擎确定的URL执行HTTP重定向
f)JsonResult
将给定的ViewData对象序列化为JSON格式
g)JavaScriptResult
返回一段可在客户端上执行的JavaScript代码
h)ContentResult
将内容写入响应流而无需视图
i)FileContentResult
将fle返回给客户端
j)FileStreamResult
返回由客户端提供的文件,由客户端提供
k)FilePathResult
将fle返回给客户端
如果您确定您的操作方法将返回某个视图页面,则可以使用ViewResult.但是,如果您的操作方法可能具有不同的行为,例如渲染视图或执行重定向.您可以使用更通用的基类ActionResult作为返回类型.
更多细节:
http://forums.asp.net/t/1448398.aspx
你也可以在这里参考:
http://www.slideshare.net/umarali1981/difference-between-action-result-and-viewresult
| 归档时间: |
|
| 查看次数: |
13202 次 |
| 最近记录: |