mvc中actionresult的返回值類型


以前一直沒注意actionresult都能返回哪些類型的類型值(一直用的公司的內部工具類初始化進行返回的),今天跟大家分享一下(也是轉載的別人的日志qaq)。

首先我們了解一下對action的要求:

1.必須是一個public方法

2.必須是實例方法

3.不能被重載

4.必須返回ActionResult類型

下面是可以返回的類型:

1.返回ViewResult視圖結果,將視圖呈現給網頁

    public ActionResult About()
     {
        return View(); // 參數可以返回model對象
     }

2.返回PartialViewResult部分視圖結果,主要用於返回部分視圖內容

     public ActionResult UserControl()
        {
            ViewBag.Message = "部分視圖";
            return PartialView("ViewUserControl");
        }

3.返回ContentResult用戶定義的內容類型 

      public ActionResult Content()
        {
           return Content("Ok", "text/html"); // 可以指定文本類型
        }

4.返回JsonResult序列化的Json對象

       public ActionResult Json()
        {
            Dictionary<string, object> dic = new Dictionary<string, object>();
            dic.Add("id", 100);
            dic.Add("name", "hello");
            return Json(dic, JsonRequestBehavior.AllowGet);
        }

主要用於返回json格式對象,可以用ajax操作;
注意:需要設置參數,JsonRequestBehavior.AllowGet,
否則會提示錯誤:此請求已被阻止,因為當用在 GET 請求中時,會將敏感信息透漏給第三方網站。
若要允許 GET 請求,請將 JsonRequestBehavior 設置為 AllowGet。
5.返回JavaScriptResult可在客戶端執行的腳本

        public ActionResult JavaScript()
        {
            string str = string.Format("alter('{0}');", "彈出窗口");
            return JavaScript(str);
        }

但這里並不會直接響應彈出窗口,需要用頁面進行再一次調用。
這個可以方便根據不同邏輯執行不同的js操作

6.返回FileResult要寫入響應中的二進制輸出,一般可以用作要簡單下載的功能

       public ActionResult File()
        {
            string fileName = "~/Content/test.zip"; // 文件名
            string downFileName = "文件顯示名稱.zip"; // 要在下載框顯示的文件名
            return File(fileName, "application/octet-stream", downFileName);
        }

7.返回Null或者Void數據類型的EmptyResult 

8.重定向方法:Redirect / RedirectToAction / RedirectToRoute

Redirect:直接轉到指定的url地址

public ActionResult Redirect()
        {
            // 直接返回指定的url地址
            return Redirect("http://www.baidu.com");
        } 

 RedirectToAction:直接使用 Action Name 進行跳轉,也可以加上ControllerName

       public ActionResult RedirectResult()
        {
            return RedirectToAction("Index", "Home", new { id = "100", name = "liu" });
        }

也可以帶上參數
RedirectToRoute:指定路由進行跳轉

        public ActionResult RedirectRouteResult()
        {
            return RedirectToRoute("Default", new { controller = "Home", action = "Index"});
        }

Default為global.asax.cs中定義的路由名稱


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM