MVC中Action方法的返回類型介紹
MVC中的Action方法的返回值一般有以下幾種:
類型 | s說明 |
---|---|
EmptyResult | 不進行任何操作 |
ContentResult | 將指定內容作為文本輸出 |
JsonResult | 輸出JSON字符串 |
JavaScriptResult | 輸出JavaScript |
RedirecResult、RedirectToRouteResult | 重定向到給定的URL中 |
FileResult(抽象類) FilePathResult、FileContentResult、FileStreamResult | 文件輸出 |
ViewResultBase(抽象類) ViewResult、PartialViewResult | 調用視圖輸出 |
Controller控制器代碼如下:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.IO; namespace MvcActionReturnType.Controllers { public class HomeController : Controller { /// <summary> /// 1、返回一個ViewResult對象 /// </summary> /// <returns></returns> public ActionResult Index() { return View(); } /// <summary> /// 2、返回一個json格式的數(shù)據 /// </summary> /// <returns></returns> public ActionResult Json() { var book = new { BookId = 1, BookName = "MVC框架" }; return Json(book, JsonRequestBehavior.AllowGet); } /// <summary> /// 3、返回JavaScript /// </summary> /// <returns></returns> public ActionResult JavaScript() { string js = "<script>alert('Welcome to ASP.NET MVC')</script>"; return JavaScript(js); } /// <summary> /// 4、返回FilePath /// </summary> /// <returns></returns> public ActionResult FilePath() { //return File("~/Content/校長 - 帶你去旅行.mp3", "audio/mp3"); return new FilePathResult("~/Content/校長 - 帶你去旅行.mp3", "audio/mp3"); } /// <summary> /// 5、返回FileContent /// </summary> /// <returns></returns> public ActionResult FileContent() { string content = "Welcome To ASP.NET MVC"; byte[] contents = System.Text.Encoding.UTF8.GetBytes(content); return File(contents, "text/plain"); } /// <summary> /// 6、返回FileStream /// </summary> /// <returns></returns> public ActionResult FileStream() { string content = "Welcome To ASP.NET MVC"; byte[] contents = System.Text.Encoding.UTF8.GetBytes(content); FileStream fs = new FileStream(Server.MapPath("~/Content/2 開發(fā)環(huán)境下載安裝說明.doc"), FileMode.Open); return File(fs, "application/msword"); } /// <summary> /// 7、返回 ContentResult /// </summary> /// <returns></returns> public ActionResult ContentResult() { string content = "<h1>Welcome To ASP.NET MVC</h1>"; return Content(content); } public ActionResult About() { ViewBag.Message = "Your application description page."; return View(); } public ActionResult Contact() { ViewBag.Message = "Your contact page."; return View(); } } }
視圖代碼如下:
@{ ViewBag.Title = "Home Page"; } <div> 1.輸出json <p> @Html.ActionLink("生成Json", "Json"); </p> 2.輸出js <script src=@Url.RouteUrl(new { action="JavaScript"}) type="text/javascript"> </script> <p> @(Url.RouteUrl(new { controller = "home", action = "JavaScript" })); @Html.ActionLink("生成JavaScript", "JavaScript"); </p> 3.播放音樂 <p> @Html.ActionLink("播放MP3", "FilePath"); </p> 4.查看文本文件 <p> @Html.ActionLink("查看文件內容", "FileContent"); </p> 5.鏈接文件流 <p> @Html.ActionLink("訪問Doc", "FileStream"); </p> 6.輸出文本 <p> @Html.ActionLink("輸出文本", "ContentResult"); </p> </div>
請看下面的兩段代碼:
public int Sum(int num1, int num2) { int sum = num1 + num2; return sum; } public ActionResult Sum2(int num1, int num2) { int sum = num1 + num2; return Content(sum.ToString()); }
有些時候,我們希望把Action定義成一種更自然的形式,比如我們希望Action Sum2做一個求和的計算,傳入的參數(shù)是整數(shù),計算的結果也是整數(shù),那么可不可以返回一個整數(shù)的結果呢?
如上面的兩個方法所示,兩個方法的效果是等價的,也就是會把整形的數(shù)據轉換成字符串類型,然后封裝成ContentResult類型,這個過程是MVC框架自動幫助我們完成的。
返回的值 | 說明 |
---|---|
null | EmptyResult |
void | EmptyResult |
對象(ActionResult之外的類型) | ContentResult |
在Action方法中,任何類型的返回值都是可以的,如果他不是ActionResult類型,會封裝成ActionResult類型的對象,如上表所示。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
.NET?Core使用flyfire.CustomSerialPort實現(xiàn)Windows/Linux跨平臺串口通訊
本文詳細講解了.NET?Core使用flyfire.CustomSerialPort實現(xiàn)Windows/Linux跨平臺串口通訊的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-01-01Entity Framework系統(tǒng)架構與原理介紹
這篇文章介紹了Entity Framework系統(tǒng)架構與原理,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-03-03