关于Action返回结果类型的事儿(下)
using System;  using System.Collections.Generic;  using System.Linq;  using System.Web;  using System.Web.Mvc;  using System.Web.Mvc.Ajax;     using System.IO;     namespace MVC.Controllers  {      /// <summary>      /// Controller 类必须以字符串 "Controller" 做类名称的结尾,字符串 Controller 之前的字符串为 Controller 的名称,类中的方法名为 Action 的名称      /// </summary>      public class ControllerDemoController : Controller      {          // [NonAction] - 当前方法仅为普通方法,不解析为 Action          // [AcceptVerbs(HttpVerbs.Post)] - 声明 Action 所对应的 http 方法             /// <summary>          /// Action 可以没有返回值          /// </summary>          public void Void()          {              Response.Write(string.Format("<span style='color: red'>{0}</span>", "void"));          }             /// <summary>          /// 如果 Action 要有返回值的话,其类型必须是 ActionResult          /// EmptyResult - 空结果          /// </summary>          public ActionResult EmptyResult()          {              Response.Write(string.Format("<span style='color: red'>{0}</span>", "EmptyResult"));              return new EmptyResult();          }             /// <summary>          /// Controller.Redirect() - 转向一个指定的 url 地址          /// 返回类型为 RedirectResult          /// </summary>          public ActionResult RedirectResult()          {              return base.Redirect("~/ControllerDemo/ContentResult");          }             /// <summary>          /// Controller.RedirectToAction() - 转向到指定的 Action          /// 返回类型为 RedirectToRouteResult          /// </summary>          public ActionResult RedirectToRouteResult()          {              return base.RedirectToAction("ContentResult");          }             /// <summary>          /// Controller.Json() - 将指定的对象以 JSON 格式输出出来          /// 返回类型为 JsonResult          /// </summary>          public ActionResult JsonResult(string name)          {              System.Threading.Thread.Sleep(1000);                var jsonObj = new { Name = name, Age = new Random().Next(20, 31) };              return base.Json(jsonObj);          }             /// <summary>          /// Controller.JavaScript() - 输出一段指定的 JavaScript 脚本          /// 返回类型为 JavaScriptResult          /// </summary>          public ActionResult JavaScriptResult()          {              return base.JavaScript("alert('JavaScriptResult')");          }             /// <summary>          /// Controller.Content() - 输出一段指定的内容          /// 返回类型为 ContentResult          /// </summary>          public ActionResult ContentResult()          {              string contentString = string.Format("<span style='color: red'>{0}</span>", "ContentResult");              return base.Content(contentString);          }             /// <summary>          /// Controller.File() - 输出一个文件(字节数组)          /// 返回类型为 FileContentResult          /// </summary>          public ActionResult FileContentResult()          {              FileStream fs = new FileStream(Request.PhysicalApplicationPath + "Content/loading.gif", FileMode.Open);              int length = (int)fs.Length;              byte[] buffer = new byte[length];              fs.Read(buffer, 0, length);              fs.Close();                 return base.File(buffer, "image/gif");          }             // <summary>         /// Controller.File() - 输出一个文件(文件地址)          /// 返回类型为 FileContentResult          /// </summary>          public ActionResult FilePathResult()          {              var path = Request.PhysicalApplicationPath + "Content/loading.gif";              return base.File(path, "image/gif");          }            // <summary>         /// Controller.File() - 输出一个文件(文件流)          /// 返回类型为 FileContentResult          /// </summary>          public ActionResult FileStreamResult()          {              FileStream fs = new FileStream(Request.PhysicalApplicationPath + "Content/loading.gif", FileMode.Open);                 return base.File(fs, @"image/gif");          }            /// <summary>         /// HttpUnauthorizedResult - 响应给客户端错误代码 401(未经授权浏览状态),如果程序启用了 Forms 验证,并且客户端没有任何身份票据,则会跳转到指定的登录页          /// </summary>          public ActionResult HttpUnauthorizedResult()          {              return new HttpUnauthorizedResult();          }    /// <summary> /// Controller.PartialView() - 寻找 View ,即 .ascx 文件 /// 返回类型为 PartialViewResult /// </summary>     public ActionResult PartialViewResult()     {         return base.PartialView();      }           /// <summary>          /// Controller.View() - 寻找 View ,即 .aspx 文件          /// 返回类型为 ViewResult          /// </summary>          public ActionResult ViewResult()          {              // 如果没有指定 View 名称,则寻找与 Action 名称相同的 View              return base.View();          }             /// <summary>          /// 用于演示处理 JSON 的          /// </summary>          public ActionResult JsonDemo()          {             return View();          }           /// <summary>          /// 用于演示上传文件的        /// </summary>          public ActionResult UploadDemo()         {             return View();          }             /// <summary>          /// 用于演示 Get 方式调用 Action          /// id 是根据路由过来的;param1和param2是根据参数过来的          /// </summary>          [AcceptVerbs(HttpVerbs.Get)]          public ActionResult GetDemo(int id, string param1, string param2)          {              ViewData["ID"] = id;              ViewData["Param1"] = param1;              ViewData["Param2"] = param2;                 return View();         }             /// <summary>          /// 用于演示 Post 方式调用 Action          /// </summary>          /// <remarks>          /// 可以为参数添加声明,如:[Bind(Include = "xxx")] - 只绑定指定的属性(参数),多个用逗号隔开          /// [Bind(Exclude = "xxx")] - 不绑定指定的属性(参数),多个用逗号隔开          /// [Bind] 声明同样可以作用于 class 上          /// </remarks>          [AcceptVerbs(HttpVerbs.Post)]          public ActionResult PostDemo(FormCollection fc)          {              ViewData["Param1"] = fc["param1"];              ViewData["Param2"] = fc["param2"];                 // 也可以用 Request.Form 方式获取 post 过来的参数                 // Request.Form 内的参数也会映射到同名参数。例如,也可用如下方式获取参数               // public ActionResult PostDemo(string param1, string param2)                 return View("GetDemo");          }             /// <summary>          /// 处理上传文件的 Action          /// </summary>          /// <param name="file1">与传过来的 file 类型的 input 的 name 相对应</param>          [AcceptVerbs(HttpVerbs.Post)]          public ActionResult UploadFile(HttpPostedFileBase file1)          {              // Request.Files - 获取需要上传的文件。当然,其也会自动映射到同名参数              // HttpPostedFileBase hpfb = Request.Files[0] as HttpPostedFileBase;                 string targetPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory + "Upload", Path.GetFileName(file1.FileName));             file1.SaveAs(targetPath);                return View("UploadDemo");          }     }  }关于Action返回结果类型的事儿(下)的更多相关文章
- ASP.NET MVC – 关于Action返回结果类型的事儿(上)
		
原文:ASP.NET MVC – 关于Action返回结果类型的事儿(上) 本文转自:博客园-文超的技术博客 一. ASP.NET MVC 1.0 Result 几何? Action的 ...
 - 【MVC】关于Action返回结果类型的事儿(上)
		
一. ASP.NET MVC 1.0 Result 几何? Action的返回值类型到底有几个?咱们来数数看. ASP.NET MVC 1.0 目前一共提供了以下十几种Action返回结果类型: 1. ...
 - 【MVC】关于Action返回结果类型的事儿(下)
		
代码
 - ASP.NET MVC Action返回结果类型【转】
		
ASP.NET MVC 目前一共提供了以下几种Action返回结果类型: 1.ActionResult(base) 2.ContentResult 3.EmptyResult 4.HttpUnauth ...
 - Controller 中Action 返回值类型  及其 页面跳转的用法
		
•Controller 中Action 返回值类型 View – 返回 ViewResult,相当于返回一个View 页面. -------------------------------- ...
 - MVC Action 返回类型[转]
		
一. ASP.NET MVC 1.0 Result 几何? Action的返回值类型到底有几个?咱们来数数看. ASP.NET MVC 1.0 目前一共提供了以下十几种Action返回 ...
 - MVC方法的返回值类型
		
MVC方法返回值类型 ModelAndView返回值类型: 1.当返回为null时,页面不跳转. 2.当返回值没有指定视图名时,默认使用请求名作为视图名进行跳转. 3.当返回值指定了视图名,程序会按照 ...
 - Action的返回值类型总结
		
Action的返回值 MVC 中的 ActionResult是其他所有Action返回类型的基类,下面是我总结的返回类型,以相应的帮助方法: 下面是这些方法使用的更详细的例子 一.返回View ...
 - asp.net mvc 3.0 知识点整理 ----- (2).Controller中几种Action返回类型对比
		
通过学习,我们可以发现,在Controller中提供了很多不同的Action返回类型.那么具体他们是有什么作用呢?它们的用法和区别是什么呢?通过资料书上的介绍和网上资料的查询,这里就来给大家列举和大致 ...
 
随机推荐
- poj  2749  Building roads  (二分+拆点+2-sat)
			
Building roads Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 6229 Accepted: 2093 De ...
 - [转] 强大的python字符串解析
			
1.python字符串通常有单引号('...').双引号("...").三引号("""...""")或('''...'' ...
 - 27个Jupyter Notebook使用技巧及快捷键(翻译版)
			
Jupyter Notebook Jupyter Notebook 以前被称为IPython notebook.Jupyter Notebook是一款能集各种分析包括代码.图片.注释.公式及自己画的图 ...
 - HashSet与HashMap
			
HashSet底层由HashMap实现 Hash表:存放链表表头的数组 HashSet的值存放于HashMap的key上,而HashMap的value统一为PRESENT(private static ...
 - Mosquitto安装_Ubuntu/Debian上安装消息队列Mosquitto
			
Mosquitto安装_Ubuntu/Debian上安装消息队列Mosquitto MQTT是IBM开发的一个即时通讯协议.MQTT是面向M2M和物联网的连接协议,采用轻量级发布和订阅消息传输机制.M ...
 - web页面打印
			
在使用的两种方式打印: 第一种:js如下 function doPrint() { allhtml = window.document.body.innerHTML; starstr = " ...
 - 编程小计——消除Graphics图像边缘颜色不纯(抗锯齿)
			
在很多时候,我们都要绘制纯色的图片,而用Graphics生成的往往是不纯的,尤其是绘制文字时.比如说绘制纯红色文字,往往R达不到255. C#中默认抗锯齿,给人看起来柔和:但是我们现实中往往用到锯齿. ...
 - PHP Socket编程起步
			
让我们以一个简单的例子开始---一个接收输入字符串,处理并返回这个字符串到客户端的TCP服务.下面是相应的代码: PHP 代码: ) or die("Could not read input ...
 - iOS中解析 XML / JSON
			
JSON数据格式 1. 概述: JSON (JavaScript Object Notation) 是⼀一种轻量级的数据交换格式 基于⽂文本格式,易于⼈人阅读和编写,同时也易于机器解析和⽣生成. 2. ...
 - php pdo_mysql使用方法
			
<?php $dsn='mysql:host=127.0.0.1;port=3306;dbname=bisai'; $username='root'; $password=''; $driver ...