Javascript 无法使用knockoutjs处理MVC重定向中的绑定

Javascript 无法使用knockoutjs处理MVC重定向中的绑定,javascript,jquery,asp.net,asp.net-mvc,knockout.js,Javascript,Jquery,Asp.net,Asp.net Mvc,Knockout.js,我正在研究击倒JS,有一些问题 我有ASP.NETMVC页面,在新页面的重定向上我面临以下问题 未捕获引用错误:无法处理与:函数的绑定 {return students}消息:无法处理绑定值: 函数{return FirstName}消息:未定义FirstName 我的代码: 您确定ajax返回的数据中存在FirstName吗?您能否向我们展示成功ajax调用后获得的json?public JsonResult FindStudentint?StudentID{db.Configuration.

我正在研究击倒JS,有一些问题

我有ASP.NETMVC页面,在新页面的重定向上我面临以下问题

未捕获引用错误:无法处理与:函数的绑定 {return students}消息:无法处理绑定值: 函数{return FirstName}消息:未定义FirstName

我的代码:


您确定ajax返回的数据中存在FirstName吗?您能否向我们展示成功ajax调用后获得的json?public JsonResult FindStudentint?StudentID{db.Configuration.ProxyCreationEnabled=false;Student objStudent=db.Students.FindStudentID;返回JsonobjStudent,JsonRequestBehavior.AllowGet;}这是我在控制器中写的。这里是小提琴的工作样本。如果我们有什么可以帮助的,请用叉子叉一下,让我们知道。干杯必须在ajax的成功函数中保留一个调试器,并观察您得到的结果,然后看到FirstName是否出现。knockout是区分大小写的,在调用$.getJSON方法之前请小心,我面临着FirstName未定义的错误。我需要在这个.students中保留虚拟数据吗??
<html>
<head>
<script src="~/Scripts/jquery-1.9.1.js"></script>
<script src="~/Scripts/knockout-3.2.0.js"></script>
</head>
<body>
<div>

<input type="button" class="btn btn-small btn-primary" data-bind="click: createProfile"  value="New Contact"/>
<table class="table table-striped table-bordered table-condensed">
<tr> 
<th>LastName Name</th>
<th>FirstName Name</th>
<th>EnrollmentDate</th>
</tr>
<tbody data-bind="foreach: students">
<tr>
<td data-bind="text: StudentID,click: editProfile"></td>
<td data-bind="text: LastName"></td>
<td data-bind="text: FirstName"></td>
<td data-bind="text: EnrollmentDate"></td>

<td><button class="btn btn-mini btn-danger" data-bind="click: removeProfile">remove</button></td>
</tr>
</tbody>
</table>
</div>
</body>
</html>


<script>
students = new Object();
var self = this;

var applied = false;

$(document).ready(function ()
{
self.createProfile = function () {
window.location.href = '/Contact/CreateEdit/0';
};

self.editProfile = function (students) {
window.location.href = '/Contact/CreateEdit/' + students.StudentID;
};

self.removeProfile = function (students) {
if (confirm("Are you sure you want to delete this profile?")) {
self.Profiles.remove(profile);
}
};

var StudentsViewModel = function () {
var refresh = function () {
$.getJSON("/Contact/GetAllStudents", function (data) {
self.students(data);
ko.applyBindings(students);
})
};
self.students = ko.observableArray([]);
refresh();
};
ko.applyBindings(new StudentsViewModel());
applied = true;

});


</script>