zoukankan      html  css  js  c++  java
  • MVC ActionResult JsonResult

    以下是ActionResult的继承图:

    image

    大概的分类:

    1. EmptyResult:表示不执行任何操作的结果
    2. ContentResult :返回文本结果
    3. JavaScriptResult:返回结果为JavaScript
    4. JsonResult :返回Json结构数据
    5. RedirectResult,RedirectToRouteResult
    6. FileContentResult,FilePathResult,FileStreamResult
    7. ViewResult,PartialViewResult
    8. HttpNotFoundResult,HttpUnauthorizedResult

    JsonResult

    大家都知道AJax是使用Json来传输数据的,Json数据在JavaScript中被广泛使用,所以JsonResult的使用范围是非常管的,下面代码演示了在MVC的Ajax.ActionLink中如何使用JsonResult

    Action

    [HttpPost]
    public ActionResult GetDetail()
    {
        return Json(new
        {
            UserName = "Test User Name",
            Email = "Test@Test.com",
            Desc = "Test Desc"
        });
    }

    View

    <script type="text/javascript">
        function handleSuccess(context) {
            $("#userName").html(context.UserName);
            $("#email").html(context.Email);
            $("#desc").html(context.Desc);
        }
    </script>
    <table>
        <tr>
            <td>
                UserName
            </td>
            <td>
                <div id="userName" />
            </td>
        </tr>
        <tr>
            <td>
                Email
            </td>
            <td>
                <div id="email" />
            </td>
        </tr>
        <tr>
            <td>
                Desc
            </td>
            <td>
                <div id="desc" />
            </td>
        </tr>
    </table>
    @Ajax.ActionLink("Click Me", "GetDetail", new AjaxOptions { HttpMethod = "POST", OnSuccess = "handleSuccess" })

    在点击ActionLink后,会调用GetDetailAction返回JsonResult,在OnSuccess方法中可以对返回的结果进行处理。

    当然要使用以上功能需要引用以下文件:

    <script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/MicrosoftAjax.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/MicrosoftMvcAjax.js")" type="text/javascript"></script>
    

    以上使用方法是在MVC3上测试通过的,但是在参考MVC2的代码时,发现用法上有以下差异:

    在MVC2中是不支持jquery.unobtrusive-ajax.min.js的,返回的context也需要做以下处理,

    <script type="text/javascript">
        function handleSuccess(context) {
            var json = context.get_data();
            var data = Sys.Serialization.JavaScriptSerializer.deserialize(json);
            $("#userName").html(data.UserName);
            $("#email").html(data.Email);
            $("#desc").html(data.Desc);
        }
    </script>
  • 相关阅读:
    Linux下Java环境安装
    Go语言学习之10 Web开发与Mysql数据库
    Go语言学习之9 网络协议TCP、Redis与聊天室
    Redis入门指南之三(入门)
    Redis入门指南之一(简介)
    Go语言学习之8 goroutine详解、定时器与单元测试
    Redis入门指南之二(安装及配置)
    Go语言学习之7 接口实例、终端文件读写、异常处理
    Go语言学习之6 反射详解
    Go语言学习之5 进阶-排序、链表、二叉树、接口
  • 原文地址:https://www.cnblogs.com/eric-qin/p/4323916.html
Copyright © 2011-2022 走看看