zoukankan      html  css  js  c++  java
  • asp.net mvc AjaxHelper 获取 JSON 的方法

    默认的 AjaxHelper 没有提供获取 JSON 的方法,只提供获取 html 然后更新指定元素的方法,不过,经测试发现还是有办法的,由于 AjaxOptions 对象的 OnSuccess 属性指定的 Javascript 回调函数可以带有一个参数,这个参数就是 Ajax 获取的文本内容,只要 Action 返回 Content-type 为 "text/html" 的文本内容就能被此函数获取到。所以,只要将返回 JSON 时的 Content-type 改为 "text/html" (默认值为"application/json"),就可以获取到 JSON 字符串,再将此字符串转换为 JS对象就可以了。(可以使用 jQuery 的 $.parseJSON(jsonString) 函数进行解析)

    例:

    Home控制器

    namespace AjaxTest.Controllers
    {
        public class HomeController : Controller
        {
            // GET: Home
            public ActionResult Index()
            {
                return View();
            }
    
            public ActionResult JsonTest()
            {
                //注意:将 Content-type 设置为 "text/html" (默认值为:"application/json")
                return Json(new { ID = 0, Name = "Json测试" }, "text/html", JsonRequestBehavior.AllowGet);
            }
        }
    }

    Home/Index(注意其中的 AjaxOptions 对象,只需要设置 HttpMethod 和 OnSuccess 属性就可以了)

    @{
        Layout = null;
    }
    
    <!DOCTYPE html>
    
    <html>
    <head>
        <meta name="viewport" content="width=device-width" />
        <title>Index</title>
    </head>
    <body>
        <ul>
            <li>
                @Ajax.ActionLink("获取Json",
                "JsonTest",
                "Home",
                null,
                new AjaxOptions() { HttpMethod = "GET", OnSuccess = "jsonTest" },
                new { })
            </li>
        </ul>
    
        <script src="~/Scripts/jquery-3.1.1.min.js"></script>
        <script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
        <script>
            function jsonTest(text) {
                alert(text);
            }
        </script>
    </body>
    </html>
  • 相关阅读:
    php中运算符的分类及注意事项
    ecshopv3.6安装
    phpstudy多站点配置教程
    织梦dedecms出现DedeCMS Error: (PHP 5.3 and above) Please set 'request_order' ini value to i解决办法
    thinkphp3.2批量删除功能
    怎么使用阿里图标库
    人人网,微博,QQ空间,朋友圈,常用API调用实现方法
    ueditor注意事项
    大图在小于自身的div中,水平居中
    thinkphp3.2 实现分页功能
  • 原文地址:https://www.cnblogs.com/gmcn/p/6358317.html
Copyright © 2011-2022 走看看