• 每天学点MVC 【Controller返回类型总结】


    最近做一个项目ASP.NET MVC2,要返回HTML数据到前台,百思苦想中,还是求助了百度

    http://blog.sina.com.cn/s/blog_5f8d04170100nqwo.html 

    中得到了想要的答案,担心以后还会用到,把他整理到这 

      1     
                                
             
    ///<summary>  2/// 如果 Action 要有返回值的话,其类型必须是 ActionResult
      3/// EmptyResult - 空结果
      4///</summary>  5public ActionResult EmptyResult()
      6         {
      7             Response.Write(string.Format("<span style='color: red'>{0}</span>""EmptyResult"));
      8             return new EmptyResult();
      9         }
     10 
     11         /// <summary>
     12         /// Controller.Redirect() - 转向一个指定的 url 地址
     13         /// 返回类型为 RedirectResult
     14         /// </summary>
     15         public ActionResult RedirectResult()
     16         {
     17             return base.Redirect("~/ControllerDemo/ContentResult");
     18         }
     19 
     20         /// <summary>
     21         /// Controller.RedirectToAction() - 转向到指定的 Action
     22         /// 返回类型为 RedirectToRouteResult
     23         /// </summary>
     24         public ActionResult RedirectToRouteResult()
     25         {
     26             return base.RedirectToAction("ContentResult");
     27         }
     28 
     29         /// <summary>
     30         /// Controller.Json() - 将指定的对象以 JSON 格式输出出来
     31         /// 返回类型为 JsonResult
     32         /// </summary>
     33         public ActionResult JsonResult(string name)
     34         {
     35             System.Threading.Thread.Sleep(1000);
     36 
     37             var jsonObj = new { Name = name, Age = new Random().Next(2031) };
     38             return base.Json(jsonObj);
     39         }
     40 
     41         /// <summary>
     42         /// Controller.JavaScript() - 输出一段指定的 JavaScript 脚本
     43         /// 返回类型为 JavaScriptResult
     44         /// </summary>
     45         public ActionResult JavaScriptResult()
     46         {
     47             return base.JavaScript("alert('JavaScriptResult')");
     48         }
     49 
     50         /// <summary>
     51         /// Controller.Content() - 输出一段指定的内容
     52         /// 返回类型为 ContentResult
     53         /// </summary>
     54         public ActionResult ContentResult()
     55         {
     56             string contentString = string.Format("<span style='color: red'>{0}</span>""ContentResult");
     57             return base.Content(contentString);
     58         }
     59 
     60         /// <summary>
     61         /// Controller.File() - 输出一个文件(字节数组)
     62         /// 返回类型为 FileContentResult
     63         /// </summary>
     64         public ActionResult FileContentResult()
     65         {
     66             FileStream fs = new FileStream(Request.PhysicalApplicationPath + "Content/loading.gif", FileMode.Open);
     67             int length = (int)fs.Length;
     68             byte[] buffer = new byte[length];
     69             fs.Read(buffer, 0, length);
     70             fs.Close();
     71 
     72             return base.File(buffer, "image/gif");
     73         }
     74 
     75         // <summary>
     76         /// Controller.File() - 输出一个文件(文件地址)
     77         /// 返回类型为 FileContentResult
     78         /// </summary>
     79         public ActionResult FilePathResult()
     80         {
     81             var path = Request.PhysicalApplicationPath + "Content/loading.gif";
     82             return base.File(path, "image/gif");
     83         }
     84 
     85 
     86         // <summary>
     87         /// Controller.File() - 输出一个文件(文件流)
     88         /// 返回类型为 FileContentResult
     89         /// </summary>
     90         public ActionResult FileStreamResult()
     91         {
     92             FileStream fs = new FileStream(Request.PhysicalApplicationPath + "Content/loading.gif", FileMode.Open);
     93 
     94             return base.File(fs, @"image/gif");
     95         }
     96 
     97         /// <summary>
     98         /// HttpUnauthorizedResult - 响应给客户端错误代码 401(未经授权浏览状态),如果程序启用了 Forms 验证,并且客户端没有任何身份票据,则会跳转到指定的登录页
     99         /// </summary>
    100         public ActionResult HttpUnauthorizedResult()
    101         {
    102             return new HttpUnauthorizedResult();
    103         }
    104 
    105 
    106         /// <summary>
    107         /// Controller.PartialView() - 寻找 View ,即 .ascx 文件
    108         /// 返回类型为 PartialViewResult
    109         /// </summary>
    110         public ActionResult PartialViewResult()
    111         {
    112             return base.PartialView();
    113         }
    114 
    115         /// <summary>
    116         /// Controller.View() - 寻找 View ,即 .aspx 文件
    117         /// 返回类型为 ViewResult
    118         /// </summary>
    119         public ActionResult ViewResult()
    120         {
    121             // 如果没有指定 View 名称,则寻找与 Action 名称相同的 View
    122             return base.View();
    123         }
    124 
    125         /// <summary>
    126         /// 用于演示处理 JSON 的
    127         /// </summary>
    128         public ActionResult JsonDemo()
    129         {
    130             return View();
    131         }
    132 
    133           /// <summary>
    134          /// 用于演示上传文件的
    135          /// </summary>
    136          public ActionResult UploadDemo()
    137          {
    138              return View();
    139          }
    140  
    141          /// <summary>
    142          /// 用于演示 Get 方式调用 Action
    143          /// id 是根据路由过来的;param1和param2是根据参数过来的
    144          /// </summary>
    145          [AcceptVerbs(HttpVerbs.Get)]
    146          public ActionResult GetDemo(int id, string param1, string param2)
    147          {
    148              ViewData["ID"] = id;
    149              ViewData["Param1"] = param1;
    150              ViewData["Param2"] = param2;
    151  
    152             return View();
    153          }
    154  
    155          /// <summary>
    156          /// 用于演示 Post 方式调用 Action
    157          /// </summary>
    158          /// <remarks>
    159          /// 可以为参数添加声明,如:[Bind(Include = "xxx")] - 只绑定指定的属性(参数),多个用逗号隔开
    160          /// [Bind(Exclude = "xxx")] - 不绑定指定的属性(参数),多个用逗号隔开
    161          /// [Bind] 声明同样可以作用于 class 上
    162          /// </remarks>
    163          [AcceptVerbs(HttpVerbs.Post)]
    164          public ActionResult PostDemo(FormCollection fc)
    165          {
    166              ViewData["Param1"] = fc["param1"];
    167              ViewData["Param2"] = fc["param2"];
    168  
    169              // 也可以用 Request.Form 方式获取 post 过来的参数
    170  
    171              // Request.Form 内的参数也会映射到同名参数。例如,也可用如下方式获取参数 
    172              // public ActionResult PostDemo(string param1, string param2)
    173  
    174              return View("GetDemo");
    175          }
    176  
    177          /// <summary>
    178          /// 处理上传文件的 Action
    179          /// </summary>
    180          /// <param name="file1">与传过来的 file 类型的 input 的 name 相对应</param>
    181          [AcceptVerbs(HttpVerbs.Post)]
    182          public ActionResult UploadFile(HttpPostedFileBase file1)
    183          {
    184              // Request.Files - 获取需要上传的文件。当然,其也会自动映射到同名参数
    185              // HttpPostedFileBase hpfb = Request.Files[0] as HttpPostedFileBase;
    186  
    187              string targetPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory + "Upload", Path.GetFileName(file1.FileName));
    188              file1.SaveAs(targetPath);
    189  
    190              return View("UploadDemo");
    191          }
    192

    View Code 

  • 相关阅读:
    【ThreadX】Azure RTOS ThreadX概述
    -- spi flash 擦除接口调用HAL库不同函数的区别
    STM32 芯片锁死解决方法
    【KEIL】User's Guide
    【KEIL】Software Packs
    【KEIL 】Options for File
    使用CubeMX创建TouchGFX工程时LCD死活不显示
    【转】获取本地图片的URL
    printf 函数格式控制
    【集成】touchgfx 之 《Using C code with TouchGFX》
  • 原文地址:https://www.cnblogs.com/bingzisky/p/2297831.html
Copyright © 2020-2023  润新知