一、所有的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大致相同 }