再開發(fā)MVC項目時迹炼,有時只需要從控制器中返回一個處理的結(jié)果,這時返回Json格式的數(shù)據(jù)非常的方便颠毙,在Controller中斯入,提供了幾種返回類型和方法,如:
Content()
返回文本類型的ContentResult:蛀蜜,比如“Hello,World!”刻两;
File()
返回文件類型的內(nèi)容FileResult,比如PDF
HttpNotFound()
返回包含404HTTP狀態(tài)碼的HttpNotFoundResult.
JavaScript()::返回JavaSciptResult
返回包含JavaScript內(nèi)容的JavaScriptResult,比如:“function hello(){alert("Hello world!")}”
Json()
返回JSON格式數(shù)據(jù)的JsonResult,比如:“{"Message":"Hello world!"}”.我們這邊就是要用該方法返回到視圖一個json對象
PartialView()
返回包含部分視圖內(nèi)容的PartialViewResult,(例如滴某,視圖可不包含結(jié)局)磅摹。
Redirect()
返回一個包含302跳轉(zhuǎn)狀態(tài)值RedirectResult滋迈,跳轉(zhuǎn)到給定的URL上。例如户誓,“302 http://www.yh117.com/auctions/recent”.這個方法包含一個同級別的放啊RedirectPermanent(),它同樣返回RedirectResult,但是使用的是301狀態(tài)碼去只是一個永久的跳轉(zhuǎn)地址饼灿,而不是臨時地址。
RedirectToAction()和RedirectToRoute()
與Redirect()類似帝美,只有框架可以動態(tài)查詢路由引擎來確定外部的URL.與Redirect()一樣碍彭,他們同樣包含永久跳轉(zhuǎn)方法:RedirectToActionermanent()和RedirectToRoutePermanent()
View()
返回渲染視圖的ViewResult()
綜上所述:MVC框架提供了各種情況下需要的操作結(jié)果類型,我們可以自由決定使用哪種類型证舟。
下面是我寫的一個例子硕旗,返回JSon格式的
視圖中的代碼:
<script>
function GetJosn()
{
alert(1);
$.get("/Home/BookInfo", {id:"1"}, function (data) {
alert(data.Result);
},"json");
}
</script>
用的是Get方法獲取的,這里需要注意的是“json”必須要用引號的女责,這是jquery語法
Controller中的中的代碼是:
public JsonResult BookInfo(string id) {
ResultJsonInfo resultInfo = new ResultJsonInfo();
resultInfo.Result = true;
resultInfo.Msg = "好啊";
return Json(resultInfo,JsonRequestBehavior.AllowGet);
}
這里用了一個ResultJsonInfo類的對象漆枚,包含返回結(jié)果和Message,然后利用JSON()方法返回該對象就行抵知,不需要將該對象轉(zhuǎn)成json格式墙基,同事注意用GET方法獲取時,在JSON()方法中一定要指定可以用Get獲取刷喜,否則會獲取不到残制。