Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc ViewResult V/S ActionResult_Asp.net Mvc_Asp.net Mvc 3 - Fatal编程技术网

Asp.net mvc ViewResult V/S ActionResult

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是一个以ViewResult为子类型的抽象类,但我看到过将这两个类用于相同功能的示例。它们之间有什么区别吗?

ActionResult
是基本类型,而
ViewResult
ActionResult
的子类型

设置操作的返回类型
ActionResult
时,可以返回它的任何子类型,例如Json、PartialView、View、RedirectToAction

但是,当您在本例中使用subtype as
ViewResult
时,您将限制您的操作,使其仅返回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
也没有害处,您可以