Я работаю с Mvc4/bootstrap 3.2 и нокаутом 3.2. Проблема. У меня есть форма, которая имеет. текстовое поле и кнопка, при нажатии кнопки Я передаю значение текстового поля контроллеру. После получения данных от контроллера привязка viewModel с таблицей. Но ни данные не обновляются в таблице, ни обновленная модель mvc. Я проверяю, что при отправке данных.ASP.NET MVC Knockout Binding не работает
ViewModel: Я Пытался ViewMoel двух способов
var SibviewModel=null;
$(function() {
var model = @Html.Raw(Json.Encode(Model));
SibviewModel = ko.mapping.fromJS(model);
ko.applyBindings(SibviewModel);
});
function GetMatchingSibling(_Id) {
var url = "/Home/GetStudentSiblingDetails/?Id=" + _Id;
$("#myModal").modal('show');
$.ajax({
url: url,
cache: false,
type: "GET",
success: function (data) {
try {
$(data.data).each(function (index, element) {
SibviewModel.SibviewModel.push(element);
});
ko.applyBindings(viewModel);
} catch (e) {
$(".alert-dismissable")
.alert('show')
.addClass("alert-danger")
.append("<h3>"+e+"</h3>");
}
finally {
$("#myModal").modal('hide');
}
},
error: function (reponse) {
alert("error : " + data.error);
$("#myModal").modal('hide');
}
});
}
Тогда я написал MVC Razor вида
<tbody data-bind="foreach: lookupCollection">
@foreach (var item in Model.LinkedSiblings)
{
string dobval = "";
if (Model.DOB.HasValue)
{
dobval = Model.DOB.Value.ToString("dd-MM-yyyy");
}
@Html.HiddenFor(x => item.PhoneNo, new { @Name = "LinkedSiblings[" + item.DynamicControlId + "].PhoneNo", @Value = item.PhoneNo, data_bind = "value: PhoneNo" })
@Html.HiddenFor(x => item.Email, new { @Name = "LinkedSiblings[" + item.DynamicControlId + "].Email", @Value = "[email protected]", data_bind = "value: Email" })
@Html.HiddenFor(x => dobval, new { @Name = "LinkedSiblings[" + item.DynamicControlId + "].DOB", @Value = dobval, data_bind = "value: DOB" })
@Html.HiddenFor(x => item.LastName, new { @Name = "LinkedSiblings[" + item.DynamicControlId + "].LastName", @Value = item.LastName, data_bind = "value: LastName" })
<tr>
<td data-bind="text: StudentId">@Html.TextBoxFor(x => item.StudentId, new { style = "max-width:100px;", @Name = "LinkedSiblings[" + item.DynamicControlId + "].StudentId", @Value = item.StudentId, data_bind = "value: StudentId" })
</td>
<td>@Html.TextBoxFor(x => item.AdmissionId, new { style = "max-width:100px;", @Name = "LinkedSiblings[" + item.DynamicControlId + "].AdmissionId", @Value = item.AdmissionId, data_bind = "value: AdmissionId" })
</td>
<td>@Html.TextBoxFor(x => item.FirstName, new { style = "max-width:100px;", @Name = "LinkedSiblings[" + item.DynamicControlId + "].FirstName", @Value = item.FirstName, data_bind = "value: FirstName" })
</td>
<td>@Html.TextBoxFor(x => item.ClassId, new { style = "max-width:100px;", @Name = "LinkedSiblings[" + item.DynamicControlId + "].ClassId", @Value = item.ClassId, data_bind = "value: ClassId" })
</td>
</tr>
}
@Html.EditorFor(x => Model.LinkedSiblings)
</tbody>
</table>
Ни View не обновляются с значением не значения, полученными по методу контроллера, когда представить форма.
Спасибо Много за ваш ответ. На самом деле я объявил Viewmodel, но я не добавил полный код здесь. Я бы сделал рекомендуемые изменения, но будет ли это отражено, когда я представим форму, которую я имею в виду (список будет передан в действие контроллера). –