MVC4中视图获取控制器中返回的json格式数据

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

posted @ 2014-05-08 08:05  SunRain117  阅读(15568)  评论(1编辑  收藏  举报