MVC中Controller返回值类型

Posted 程序猿微课

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MVC中Controller返回值类型相关的知识,希望对你有一定的参考价值。




MVC中Controller返回值类型



在mvc中所有的controller类都必须使用"Controller"后缀来命名
并且对Action也有一定的要求:

  • 必须是一个public方法

  • 必须是实例方法

  • 没有标志NonActionAttribute特性的(NoAction)

  • 不能被重载

  • 必须返回ActionResult类型


什么是ActionResult

ActionResult是控制器方法执行后返回的结果类型,控制器方法可以返回一个直接或间接从ActionResult抽象类继承的类型,如果返回的 是非ActionResult类型,控制器将会将结果转换为一个ContentResult类型。默认的ControllerActionInvoker

调用ActionResult.ExecuteResult方法生成应答结果。


常见的ActionResult

动作结果的类型 说    明
EmptyResult
代表一个空值或空的响应,不进行任何操作
ContentResult 将指定的内容作为文本直接写入响应中
JsonResult

串行化提供到JSON中的对象并将

JSON写入响应中

RedirectResult 将用户重新定向到给定的URL中
RedirectToRouteResult

将用户重新定向到通过路由选

择参数指定的URL中

ViewResult 调用进视图引擎以将视图呈现到响应中
PartialViewResult

与ViewResult相似,除了没有将局部

视图呈现给响应之外,通常会响应AJAX请求

FileResult

用作一组结果的基类,这组结果将二

进制的响应编写到流中。这对于将文

件返回给用户非常有用

FilePathResult

继承自FileResult并返回,将文件写入

基于文件路径的响应中

FileContentResult

继承自FileResult并返回,将一个字

节数组写入响应中


FileStreamResult

继承自FileResult并返回,将一个

流写入响应中

javascriptResult

用于在客户机上立刻执行来自服务

器的JavaScript代码


采用通过Action参数的方式大大的减少了代码量和提高了可读性。使用参数的形式还有一个好处是利于单元测试,因为我们不用创建一个RouteData和Request对象,直接传递对应参数就可以测试。






以上是关于MVC中Controller返回值类型的主要内容,如果未能解决你的问题,请参考以下文章

Asp.net MVC 中Controller返回值类型ActionResult

Spring MVC @Controller中返回值为void类型

Spring MVC @Controller中返回值为void类型

ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml)

深入理解Spring MVC Controller返回String类型导致中文乱码的问题。

深入理解Spring MVC Controller返回String类型导致中文乱码的问题。