Asp.net mvc ViewResult V/S ActionResult
如何决定是使用ActionResult还是ViewResult?我知道ActionResult是一个以ViewResult为子类型的抽象类,但我看到过将这两个类用于相同功能的示例。它们之间有什么区别吗?Asp.net mvc ViewResult V/S ActionResult,asp.net-mvc,asp.net-mvc-3,Asp.net Mvc,Asp.net Mvc 3,如何决定是使用ActionResult还是ViewResult?我知道ActionResult是一个以ViewResult为子类型的抽象类,但我看到过将这两个类用于相同功能的示例。它们之间有什么区别吗?ActionResult是基本类型,而ViewResult是ActionResult的子类型 设置操作的返回类型ActionResult时,可以返回它的任何子类型,例如Json、PartialView、View、RedirectToAction 但是,当您在本例中使用subtype asViewR
ActionResult
是基本类型,而ViewResult
是ActionResult
的子类型
设置操作的返回类型ActionResult
时,可以返回它的任何子类型,例如Json、PartialView、View、RedirectToAction
但是,当您在本例中使用subtype asViewResult
时,您将限制您的操作,使其仅返回subtype as result,在本例中,它是View
当您使用ActionResult
作为返回类型时,您可以从Action返回以下内容(这意味着以下是ActionResult的子类型),如论坛.asp.net所述:
ActionResult是一种通用的结果类型,可以有多个子类型(来自“ASP.NET MVC 1.0快速”书籍):
a) 查看结果
向响应流呈现指定的视图
b) PartialViewResult
向响应流呈现指定的局部视图
c) 清空结果
基本上什么都不做;给出了一个空的响应
d) 重定向结果
执行到指定URL的HTTP重定向
e) 重定向路由结果
根据给定的路由数据,对路由引擎确定的URL执行HTTP重定向
f) JsonResult
将给定的ViewData对象序列化为JSON格式
g) JavaScriptResult
返回一段可以在上执行的JavaScript代码
客户
h) ContentResult
将内容写入响应流而不需要查看
i) FileContentResult
将fle返回给客户端
j) FileStreamResult
向客户端返回由流提供的fle
k) FilePathResult
将fle返回给客户端
何时使用ViewResult
如果确定操作方法将返回一些查看页面,则可以使用查看结果。但是如果您的操作方法可能具有不同的行为,例如渲染视图或执行重定向。您可以使用更通用的基类ActionResult作为返回类型
有关详细信息:
你也可以在这里查阅:
如果使用查看结果,则必须返回如下视图
public ViewResult MyView ()
{
return View();
}
如果您将其标记为Action result,则可以返回多种结果,如
public ActionResult MyView ()
{
//can return view
//can return partial view
//can return json
//can return javascript
// redirect to another action
// and many more :)
}
作为面向对象编程的基础,它总是为抽象而不是具体的操作编写代码,因此使用ActionResult总是有好处的
有关ActionResult的更多信息,请首先按照理解---ActionResult和ViewResult基本上是方法的返回类型(即MVC中的操作)
第二个区别是---ActionResult可以返回任何类型的结果,而ViewResult可以返回任何类型的结果
仅查看。Hi的可能重复,这里的编程新手,为什么要压缩,为什么不使用actionresult而不是viewresult?这只是一个安全原因,程序泄漏原因吗?ActionResult和ViewResult之间的差异我不知道有这么多返回类型!Jazakallah,现在在asp.net mvc 5中,更完整的列表出现在Hi中,这里是编程新手,为什么要压缩,为什么不使用actionresult而不是viewresult?这仅仅是一个安全原因,程序泄漏原因吗?使用
ActionResult
也没有害处,您可以