【问题标题】:How to get returned json data after jquery post? [duplicate]jquery post后如何获取返回的json数据? [复制]
【发布时间】:2014-01-07 01:28:21
【问题描述】:

我试图在 jquery.post 之后通过 json 获取返回的数据,但是...

    <script>
        function sendToJsonTitleConverter() {
            $.post("/engine/title-converter", {
                NewTitle: $("#NewTitle").val()
            });
        }
    </script>

MVC:

    public ActionResult JsonTitleConverter()
    {
        if (!string.IsNullOrWhiteSpace(Request.Form["NewTitle"]))
        {
            string title = myFunction.ClearTitle(Request.Form["NewTitle"]);
            var result = new LinkedList<object>();
            result.AddLast(new
            {
                Title = title
            });
            return Json(result, JsonRequestBehavior.AllowGet);
        }
        else
        {
            return null;
        }
    }

返回的 Json:

[{"Title":"test 21312 asdasd asas"}]

如何在 javascript 中获取 Title?

【问题讨论】:

    标签: c# javascript jquery asp.net-mvc model-view-controller


    【解决方案1】:

    您需要一个“回调”,即设置为在异步操作完成时执行的函数。有点像“待办事项”,因为您不能为非顺序操作执行顺序代码。

    在本例中,我更喜欢使用延迟样式添加回调,以便函数的名称(在本例中为done)是可读的。还可以加上failcomplete,不会混淆。

    此外,您需要声明您正在获取 JSON 数据。 jQuery 有时无法正确获取类型,尤其是在它们的速记函数上。

    $.post("/engine/title-converter", {
        NewTitle: $("#NewTitle").val()
      },'json')
      .done(function(data){
        var title = data[0].Title
      });
    

    【讨论】:

    • 你是救生员 :) 非常感谢!
    【解决方案2】:

    像这样:

    function sendToJsonTitleConverter() {
        $.post("/engine/title-converter", {NewTitle: $("#NewTitle").val()}, function(data){
             var title = data[0].Title;
             alert(title);
        }, 'json');
    }
    

    干杯

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-03
      • 2011-04-03
      • 1970-01-01
      • 1970-01-01
      • 2019-07-20
      • 1970-01-01
      • 1970-01-01
      • 2011-04-19
      相关资源
      最近更新 更多