生活随笔
收集整理的這篇文章主要介紹了
[转载]Asp.net MVC中Controller返回值类型
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Asp.net MVC中Controller返回值類型
在mvc中所有的controller類都必須使用"Controller"后綴來命名
并且對Action也有一定的要求:
- 必須是一個public方法
- 必須是實(shí)例方法
- 沒有標(biāo)志NonActionAttribute特性的(NoAction)
- 不能被重載
- 必須返回ActionResult類型
如:
[csharp]?view plaincopy
public?class?MyController?:?Controller??{???????????public?ActionResult?HelloWorld()??????{??????????ViewData["Message"]?=?"Hello?World!";??????????return?View();??????}??}?? 下面列舉Asp.net MVC中Controller中的ActionResult返回類型
1、返回ViewResult視圖結(jié)果,將視圖呈現(xiàn)給網(wǎng)頁
[csharp]?view plaincopy
public?ActionResult?About()???{??????return?View();????}?? 2、 返回PartialViewResult部分視圖結(jié)果,主要用于返回部分視圖內(nèi)容
在View/Shared目錄下創(chuàng)建ViewUserControl.cshtml部分視圖
??
[csharp]?view plaincopy
public?ActionResult?UserControl()???{???????ViewBag.Message?=?"部分視圖";???????return?PartialView("ViewUserControl");???}?? ? ? ? ?頁面調(diào)用@ViewBag.Message 將輸出“部分視圖”
3、 返回ContentResult用戶定義的內(nèi)容類型?
[csharp]?view plaincopy
public?ActionResult?Content()??{?????return?Content("Test?Content",?"text/html");???}?? ?頁面輸出“Test Content”;
此類型多用于在ajax操作中需要返回的文本內(nèi)容
4、 返回JsonResult序列化的Json對象
? ? ??
[csharp]?view plaincopy
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操作;
注意:需要設(shè)置參數(shù),JsonRequestBehavior.AllowGet,
否則會提示錯誤:此請求已被阻止,因?yàn)楫?dāng)用在 GET 請求中時,會將敏感信息透漏給第三方網(wǎng)站。
若要允許 GET 請求,請將 JsonRequestBehavior 設(shè)置為 AllowGet。
5、返回JavaScriptResult可在客戶端執(zhí)行的腳本
[csharp]?view plaincopy
public?ActionResult?JavaScript()??{??????string?str?=?string.Format("alter('{0}');",?"彈出窗口");??????return?JavaScript(str);??}?? 但這里并不會直接響應(yīng)彈出窗口,需要用頁面進(jìn)行再一次調(diào)用。
這個可以方便根據(jù)不同邏輯執(zhí)行不同的js操作
6、返回FileResult要寫入響應(yīng)中的二進(jìn)制輸出,一般可以用作要簡單下載的功能
[csharp]?view plaincopy
public?ActionResult?File()???{???????string?fileName?=?"~/Content/test.zip";????????string?downFileName?=?"文件顯示名稱.zip";????????return?File(fileName,?"application/octet-stream",?downFileName);???}?? 直接下載test.zip后保存到本地則為"文件顯示名稱.zip"
7、 返回Null或者Void數(shù)據(jù)類型的EmptyResult?
[csharp]?view plaincopy
public?ActionResult?Empty()???{???????return?null;???}?? 返回NULL
8、重定向方法:Redirect / RedirectToAction / RedirectToRoute
? ? Redirect:直接轉(zhuǎn)到指定的url地址
[csharp]?view plaincopy
public?ActionResult?Redirect()?????????{??????????????????????????return?Redirect("http://www.baidu.com");?????????}??? ? ? RedirectToAction:直接使用 Action Name 進(jìn)行跳轉(zhuǎn),也可以加上ControllerName
[csharp]?view plaincopy
public?ActionResult?RedirectResult()??{??????return?RedirectToAction("Index",?"Home",?new?{?id?=?"100",?name?=?"liu"?});??}?? 也可以帶上參數(shù)
RedirectToRoute:指定路由進(jìn)行跳轉(zhuǎn)
[csharp]?view plaincopy
public?ActionResult?RedirectRouteResult()??{??????return?RedirectToRoute("Default",?new?{?controller?=?"Home",?action?=?"Index"});??}?? Default為global.asax.cs中定義的路由名稱
總結(jié)
以上是生活随笔為你收集整理的[转载]Asp.net MVC中Controller返回值类型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。