json オブジェクトを取得できません。
私の目的は:
public class Person
{
public string firstName { get; set; }
public string lastName { get; set; }
}
人物管理:
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")
<p>First name: <strong data-bind="text: firstName"></strong></p>
<p>Last name: <strong data-bind="text: lastName"></strong></p>
<div id="dispJson"></div>
<script type="text/javascript">
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());
</script>
ブラウザで「.../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);
});*
次に、警告ボックスに次のように表示されます。