zoukankan      html  css  js  c++  java
  • Asp.net MVC 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");
            }
        }
    }

  • 相关阅读:
    Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2) D
    HDU 2036 求任意多边形面积板子题
    HDU 6703 array(主席树)
    2019牛客暑期多校训练营(第九场)H Cutting BamboosO(二分、主席树)
    lintcode-425-电话号码的字母组合
    lintcode-81-数据流中位数
    lintcode-424-逆波兰表达式求值
    lintcode-423-有效的括号序列
    lintcode-422-最后一个单词的长度
    lintcode-421-简化路径
  • 原文地址:https://www.cnblogs.com/fx2008/p/2817847.html
Copyright © 2011-2022 走看看