Я получаю данные из таблицы базы данных SQL в представление ASP. NET MVC, но у меня возникают проблемы с получением измененных входных данных в сообщение Ajax, например:
@model MyViewModel
<div class="row">
<div class="col-1">
@Html.LabelFor(model => model.Id, "Id:", new {})
</div>
<div class="col-4">
@Html.Label(Model.Id.ToString(), new { title = "" })
</div>
</div>
<div class="row">
<div class="col-1">
@Html.LabelFor(model => model.Test, "Test:", new { })
</div>
<div class="col-9">
@Html.TextBoxFor(model => model.Test, new { data_bind = "value: Test", @type = "text" })
</div>
</div>
@section scripts {
<script type="text/javascript">
$("#save-click").click(function () {
var nr = @Model.Id;
var postData = @Html.Raw(Json.Encode(@Model));
//alert(postData.Test);
$.ajax({
type: "POST",
url: actions.test.createOrUpdate + "?id=" + nr,
dataType: "json",
traditional: true,
data: postData,
success: function (response) {
if (response.Code == 0) {
else {
window.location.reload(false);
}
} else {
alert('err');
}
}
});
});
});
</script>
}
Когда я загружаю вид, все отображается правильно. Действие контроллера запускается правильно, и Id (который не может быть изменен) также передается должным образом. Однако при изменении полей ввода в контроллер передаются не измененные значения, а исходные значения, которые были извлечены в представление.
Сериализация, похоже, работает, поскольку предупреждение (postData.Test
) возвращает значение - но всегда неизменный.
Любая помощь будет оценена.