我不能得到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