再開發MVC項目時,有時只需要從控制器中返回一個處理的結果,這時返回Json格式的數據非常的方便,在Controller中,提供了幾種返回類型和方法,如:
Content()
返回文本類型的ContentResult:,比如“Hello,World!”;
File()
返回文件類型的內容FileResult,比如PDF
HttpNotFound()
返回包含404HTTP狀態碼的HttpNotFoundResult.
JavaScript()::返回JavaSciptResult
返回包含JavaScript內容的JavaScriptResult,比如:“function hello(){alert("Hello world!")}”
Json()
返回JSON格式數據的JsonResult,比如:“{"Message":"Hello world!"}”.我們這邊就是要用該方法返回到視圖一個json對象
PartialView()
返回包含部分視圖內容的PartialViewResult,(例如,視圖可不包含結局)。
Redirect()
返回一個包含302跳轉狀態值RedirectResult,跳轉到給定的URL上。例如,“302 http://www.yh117.com/auctions/recent”.這個方法包含一個同級別的放啊RedirectPermanent(),它同樣返回RedirectResult,但是使用的是301狀態碼去只是一個永久的跳轉地址,而不是臨時地址。
RedirectToAction()和RedirectToRoute()
與Redirect()類似,只有框架可以動態查詢路由引擎來確定外部的URL.與Redirect()一樣,他們同樣包含永久跳轉方法:RedirectToActionermanent()和RedirectToRoutePermanent()
View()
返回渲染視圖的ViewResult()
綜上所述:MVC框架提供了各種情況下需要的操作結果類型,我們可以自由決定使用哪種類型。
下面是我寫的一個例子,返回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類的對象,包含返回結果和Message,然后利用JSON()方法返回該對象就行,不需要將該對象轉成json格式,同事注意用GET方法獲取時,在JSON()方法中一定要指定可以用Get獲取,否則會獲取不到。