MVC所有的ActionResult

哈根達斯發表於2018-06-20

一、所有的Controller都繼承自System.Web.Mvc.Controller

  目前ASP.NET MVC3預設提供了多種ActionResult的實現,在System.Web.Mvc名稱空間裡。

  其中ActionResult是一個抽象類,所有一下的Result都繼承自它,因此如果一個Action的返回值是ActionResult的話,可以返回以下任意一種型別的值,但是如果限制死了返回值為以下任意一種Result,則只能夠返回指定的型別的資料了。

  • ContentResult
  • EmptyResult
  • FileResult
  • HttpStatusCodeResult
  • HttpNotFoundResult
  • HttpUnauthorizedResult
  • JavaScriptResult
  • JsonResult
  • RedirectResult
  • RedirectToRouteResult
  • ViewResultBase
  • PartialViewResult
  • ViewResult

 

     

public ContentResult Index()
        {
            return Content("測試");       //瀏覽器顯示測試
        }

        public EmptyResult Index()
        {
            return new EmptyResult();     //瀏覽器顯示空白            
        }

        public FileResult Index()
        {
            return File(Server.MapPath("~/demo.jpg"), "application/x-jpg", "demo.jpg");        //瀏覽器直接下載demo.jpg   
        }

        public HttpNotFoundResult Index()
        {
            return HttpNotFound();     //報404錯誤          
        }

        public HttpUnauthorizedResult Index()
        {
            return new HttpUnauthorizedResult();     //未授權的頁面,跳轉到/Account/LogOn          
        }

        public JavaScriptResult hello()
        {
            string js = "alert(`你還好嗎?`);";
            return JavaScript(js);      //頁面顯示 alert(`你還好嗎?`);} 並不會執行這個js,要執行這個js可以在任意檢視裡<script src="@Url.Action("hello")" type="text/javascript"></script>     
        }

        public JsonResult Index()
        {
            var jsonObj = new
            {
                Id = 1,
                Name = "小銘",
                Sex = "男",
                Like = "足球"
            };

            return Json(jsonObj, JsonRequestBehavior.AllowGet);     //返回一個JSON,可以將此程式碼輸出到JS處理展示
        }

        public RedirectResult Index()
        {
            return Redirect("~/demo.jpg");      //可以跳轉到任意一個路徑
            return Redirect("http://www.baidu.com");
            return Redirect("/list");
        }

        public RedirectToRouteResult Index()
        {
            return RedirectToRoute(     //跳轉到指定Action
            new
            {
                controller = "Home",
                action = "GetName"
            });
        }

        public ViewResult Index()
        {
            return View();          //這個是最常用的,返回指定檢視
            //return View("List");
            //return View("/User/List");
        }

        public PartialViewResult Index()
        {
            return PartialView();          //部分檢視,可以作為一個部分引入另外一個檢視中,跟View大致相同
        }

  

相關文章