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>
  • 相关阅读:
    07: mysql锁和事物隔离
    06: mysql索引查找原理及调优
    06: 字典、顺序表、列表、hash树 实现原理
    05:树结构
    02:MongoDB操作
    01:MongoDB基础
    02: CMDB设计思路
    二级制包安装Tomcat 与 RPM包安装Tomcat
    Docker的volume机制实现容器数据的持久性存储
    配置docker的私有仓库
  • 原文地址:https://www.cnblogs.com/eric-qin/p/4323916.html
Copyright © 2011-2022 走看看