Action的返回值

MVC 中的 ActionResult是其他所有Action返回类型的基类,下面是我总结的返回类型,以相应的帮助方法:

下面是这些方法使用的更详细的例子

一、返回View     View()方法的几种重载:

  1. public ViewResult Index() {
  2.     return View();
  3. }
  4.  
  5. public ViewResult Index() {
  6.     return View("Index", "_AlternateLayoutPage");
  7. }
  8.  
  9. public ViewResult Index() {
  10.     return View("~/Views/Other/Index.cshtml");
  11. }

二、返回partialView

  1.        public ActionResult PartialViewResult()
  2.         {
  3.             return PartialView();
  4.         }
  5.  
  6.         //禁止直接访问的ChildAction
  7.         [ChildActionOnly]
  8.         public ActionResult ChildAction()
  9.         {
  10.             return PartialView();
  11.         }

我们直接右键当前的Action名称就可以创建与Action同名的View,无参数的情况下,PartialView返回的就是与Action同名的View。

三、跳转的几种实现方式

  1. 1、通过静态URL进行跳转:
  2. public RedirectResult Redirect() {
  3.     return Redirect("/Example/Index");
  4. }
  5.  
  6. 2、通过RedirectToRoute方法跳转:
  7. public RedirectToRouteResult Redirect() {
  8.    return RedirectToRoute(new {
  9.         controller = "Example",
  10.         action = "Index",
  11.         ID = "MyID"
  12.    });
  13. }
  14.  
  15. 3、通过RedirectToAction方法跳转:
  16. public RedirectToRouteResult Redirect() {
  17.     return RedirectToAction("Index", "Basic");                       //如果只有action名称的话,Controller默认为当前Controller
  18. }

四、返回json字符串

  1. public ActionResult Json() 
  2. {
  3.         Dictionary<string,object> dic = new Dictionary<string, object>(); 
  4.         dic.Add("id",100); 
  5.         dic.Add("name","hello"); 
  6.         return Json(dic, JsonRequestBehavior.AllowGet); 
  7. } 

主要用于返回json格式对象,可以用ajax操作;
注意:需要设置参数,JsonRequestBehavior.AllowGet,否则会提示错误:此请求已被阻止,因为当用在GET 请求中时,会将敏感信息透漏给第三方网站。

若要允许 GET 请求,请将JsonRequestBehavior设置为AllowGet。

五、返回ContentResult

  1. public ActionResult Content() 
  2. { 
  3.        return  Content("Test Content", "text/html"); // 可以指定文本类型 
  4. } 

页面输出“Test Content”;此类型多用于在ajax操作中需要返回的文本内容

六、返回JavaScriptResult

  1. public ActionResult JavaScript() 
  2. { 
  3.        string str =string.Format("alter('{0}');", "弹出窗口"); 
  4.        return JavaScript(str); 
  5. } 

这里并不会直接响应弹出窗口,需要用页面进行再一次调用。这个可以方便根据不同逻辑执行不同的js操作但

七、返回FileResult

  1. public ActionResult File() 
  2. { 
  3.        string fileName ="~/Content/test.zip"; // 文件名 
  4.         string downFileName ="文件显示名称.zip"; // 要在下载框显示的文件名 
  5.          return File(fileName,"application/octet-stream", downFileName); 
  6. } 

直接下载test.zip后保存到本地则为"文件显示名称.zip"

八、返回404、401

  1. 返回404public HttpStatusCodeResult StatusCode() {
  2.      return HttpNotFound();
  3. }
  4.  
  5. 返回401
  6. public HttpStatusCodeResult StatusCode() {
  7.     return new HttpUnauthorizedResult();
  8. }

Action的返回值类型总结的更多相关文章

  1. ASP.NET Core中的Action的返回值类型

    在Asp.net Core之前所有的Action返回值都是ActionResult,Json(),File()等方法返回的都是ActionResult的子类.并且Core把MVC跟WebApi合并之后 ...

  2. Controller 中Action 返回值类型 及其 页面跳转的用法

        •Controller 中Action 返回值类型 View – 返回  ViewResult,相当于返回一个View 页面. -------------------------------- ...

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

    [Asp.net MVC中Controller返回值类型] 在mvc中所有的controller类都必须使用"Controller"后缀来命名并且对Action也有一定的要求: 必 ...

  4. Web API中的返回值类型

    WebApi中的返回值类型大致可分为四种: Void/ IHttpActionResult/ HttpResponseMessage /自定义类型 一.Void void申明方法没有返回值,执行成功后 ...

  5. SSM框架之SpringMVC(4)返回值类型及响应数据类型

    SpringMVC(4)返回值类型及响应数据类型 1. 返回值分类 1.1. 返回字符串 Controller方法返回字符串可以指定逻辑视图的名称,根据视图解析器为物理视图的地址. @RequestM ...

  6. SpringMVC方法的返回值类型和自动装配

    1. void类型作为返回值类型 /** * 如果方法写成了void就跟原来servlet含义是差不多 的 * json */ @RequestMapping("/firstRequest& ...

  7. springMVC入门(四)------参数绑定与返回值类型

    简介 从之前的介绍,已经可以使用springMVC完成完整的请求.返回数据的功能. 待解决的问题:如何将数据传入springMVC的控制器进行后续的处理,完成在原生servlet/jsp开发中Http ...

  8. C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解

    前言:已经有一个月没写点什么了,感觉心里空落落的.今天再来篇干货,想要学习Webapi的园友们速速动起来,跟着博主一起来学习吧.之前分享过一篇 C#进阶系列——WebApi接口传参不再困惑:传参详解  ...

  9. ajaxpro返回值类型总结-DataTable(转)

    ajaxpro使用总结系列其他内容 ajaxpro ajaxmethod 重载调用问题 ajaxpro方法ajaxmethod调用示例 ajaxpro返回值类型总结-string,int ajaxpr ...

随机推荐

  1. bootstrap基础知识

    Bootstrap是Twitter推出的一款简洁.直观.强悍的前端开发框架. Bootstrap基于 HTML.CSS.JAVASCRIPT.它由Twitter的设计师Mark Otto和Jacob ...

  2. BZOJ 1621: [Usaco2008 Open]Roads Around The Farm分岔路口

    题目 1621: [Usaco2008 Open]Roads Around The Farm分岔路口 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 56 ...

  3. HDU 4569Special equations2012长沙邀请赛E题(数学知识)

    Special equations Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  4. H面试程序(15): 冒泡排序法

    #include<stdio.h> #include<assert.h> void display(int * a, int n) { for(int i = 0; i < ...

  5. Android Testing(1) 浅尝Android测试的奥秘

    ------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 仅供学习和交流使用,翻译不好勿喷,请只摘除不合适的地方 Testing The Android fram ...

  6. android中menu菜单的简单使用

    我认为menu用起来简洁方便,特别是在一些大一点的程序中我们早就厌烦了一遍遍的加button,设置了菜单可谓是事半功倍,简单省事. <1>先声明定义下你的menu: private sta ...

  7. css基础(二)

    一.元素内容的字体属性 1.font-family   字体名称,例如:宋体,新罗马字体等 注意:1.不能使用偏僻的字体,要使用安全字体,如:arial;verdana;times new roman ...

  8. 什么是CALayer

    一.什么是CALayer * 在iOS系统中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是UIView. * 其实UIView之所以 ...

  9. 机器学习笔记(三)- from Andrew Ng的教学视频

    week four: Non-linear hypotheses:Neural Networks -->x1 and x2 x1 XNOR x2 ->a1->x1 and x2;a2 ...

  10. nginx前端负载,后端apache获取真实IP设置

    原文链接: nginx前端负载,后端apache获取真实IP设置 参考文献: 前端Nginx,后端Apache获取用户真实IP地址  按照第二种方法设置不成功! 网站最前端是nginx,做的PROXY ...