再开发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获取,否则会获取不到。