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>
  • 相关阅读:
    button theme
    Container详解
    flutter控件之ExpansionPanelList
    flutter屏幕适配
    Flutter 获取控件尺寸和位置
    Dart
    异步async、await和Future的使用技巧
    flutter key
    Flutter 控件之 Routes 和 Navigator. [PopupRoute]
    flutter
  • 原文地址:https://www.cnblogs.com/gmcn/p/6358317.html
Copyright © 2011-2022 走看看