jQuery技术:无法通过淘汰赛获得json对象

我不能得到json对象。

我的目标是:

public class Person { public string firstName { get; set; } public string lastName { get; set; } } 

PersonsControll:

  public ActionResult Index() { return View(); } // GET: /Persons/GetPerson //[AcceptVerbs(HttpVerbs.Get)] //[OutputCache(Duration = 0, VaryByParam = "*")] public JsonResult GetPerson() { Person p = new Person { firstName = "Jonas", lastName = "Antanaitis" }; return Json(p, JsonRequestBehavior.AllowGet); } 

我的索引视图:

 @Scripts.Render("~/bundles/knockout") 

First name:

Last name:

var data = $.getJSON(".../GetPerson", function (result) { //state = result.readyState; firstName: result.firsName; lastName: result.lastName; }) .error(function () { alert("error"); }); function viewModel() { ko.mapping.fromJS(data); //state = data.readyState; //firstName = data.firstName; //lastName = data.lastName; }; document.write(JSON.stringify(data)); //this line prints "{"readyState":1}" ko.applyBindings(new viewModel());

当我在浏览器中转到“… / GetPerson”时,我显示: {“firstName”:“Jonas”,“lastName”:“Antanaitis”}

,但是当试图获取数据时,javascript视图 – 我不会得到这些数据。

我做错了什么,为什么我不能得到数据? 评论代码的地方 – 我试过这种方法..但没有任何帮助。

我试过了:

 *$.ajax({ type: "GET", cache: false, url: ".../GetPerson", }).done(function (msg) { alert("Data Saved: " + msg.readyState + " " + msg.firstName + " " + msg.lastName); });* 

然后警告框显示:“ 数据已保存:未定义Jonas Antanaitis

    你正在混合异步代码和同步代码…你在这里有这一行

     var data = $.getJSON(".../GetPerson", function (result) { 

    data实际上是一个承诺(这是ajax返回的)。 在回调执行之前,您实际上并没有数据 – 即结果是具有ACTUAL数据的东西。

    您需要将绑定移动到INSIDE回调或使用您在事后设置的observable:

    1)在回调示例中

      

    2)使用可观察的

      

    相应的html(带有绑定使它比if更干净):

      

    First name:

    Last name:

    第二种方法的优点是您可以快速绑定所有内容……然后可以显示您的数据。

      以上就是jQuery教程分享无法通过淘汰赛获得json对象相关内容,想了解更多jQuery开发(异常处理)及jQuery教程关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/jquerytutorial/559014.html

      (0)
      上一篇 2021年2月1日
      下一篇 2021年2月1日

      精彩推荐