MVC中的Action 返回类型

可以返回任意类型的数据
ActionResult: 在ExecuteResult方法中实现

EmptyResult:action的返回类型是void或者返回值为null时 会生成EmptyResult;

ContentResult: 返回的是字符串 ContentEncoding和ContentType则用于指定字符编码方式和媒体类型(MIME类型)

无论返回什么类型的数据 ActionInvoker都会创建相应的actionresult 对于不具有返回值或者返回值是null的action,最终会创建一个emptyresult

如果返回对象是actionresult 则直接返回该对象 否则将对象转换成字符串并创建contentresult

FileResult 抽象类 写入文件内容

FileContentResult 继承自FileResult byte[]方式写入文件

FilePathResult 继承自FileResult 通过文件路径写入文件

FileDtreamResult 继承自FileResult 通过文件流写入文件

HttpUnauthorizedResult 抛出401错误

JavascriptResult 返回js

JsonResult 返回json

RedirectResult 使用resposed.redirect重定向

ViewResultBase 调用 IView.Render()

RedirectToRouterResult 根据路由规则重定向

ViewResult 调用父类ViewResultBase的ExecuteResult方法重写父类的FindView方法 寻找页面的.aspx文件

PartialViewResult 调用父类ViewResultBase的ExecuteResult方法重写父类的FindView方法 寻找页面的.asxc文件\

PartialView("View"); 返回其他action所属的view 但不会调用其action

MVC内部跳转总结:

return RedirectToAction("Home","Index");
return Redirect("/Home/Index");