У меня есть поле DropDownListFor в моем модальном всплывающем окне «Редактировать», которое является частичным представлением.Поле Тип в моей модели является целым.У меня отключено поле, поскольку я не хочу, чтобы пользователь мог редактировать это поле.
<div class="form-group">
@Html.LabelFor(model => model.Type)
<div class="col-md-10">
@Html.DropDownListFor(model => model.Type, ViewData["TypeList"] as IEnumerable<SelectListItem>, new { @disabled = "disabled" })
@Html.HiddenFor(model => model.Type)
</div>
</div>
Данные редактирования заполняются с помощью комбинации возврата JsonResult и JQuery.
<script type="text/javascript">
function showModalEdit(learningObjectId) {
$.ajax(
{
url: '@Url.Action("Edit")/' + learningObjectId,
//context: JSON.stringify({ id: moduleId })
})
.done(function (data) {
if (data.LearningObject && data.LearningObject.Name) {
document.getElementById("LearningObjectID").value = learningObjectId;
document.getElementById("Name").value = data.LearningObject.Name;
document.getElementById("DisplayName").value = data.LearningObject.DisplayName;
document.getElementById("Description").value = data.LearningObject.Description;
document.getElementById("Type").value = data.LearningObject.TypeCode;
document.getElementById("ImportID").value = data.LearningObject.ImportID;
for (var i = 0; i < data.Tags.length; i++) {
addTag('Tags', 'tagInputEdit', 'tagListEdit', 'tagCountEdit', data.Tags[i].Name);
}
}
});
}
</script>
public JsonResult Edit(int? id)
{
LearningObject learningObject = _db.LearningObjects.Find(id);
var tags = (from t in _db.Tags
join lot in _db.LearningObjectTags on t.TagID equals lot.TagID
where lot.LearningObjectID == id.Value && lot.Active == true
select new { Name = t.Name }).ToList();
return Json(new { LearningObject = learningObject, Tags = tags }, JsonRequestBehavior.AllowGet);
}
Проводя исследование, я прочитал, что лучший способ вернуть значение отключенного DropDownListFor в контроллер - это скрытое поле, которое я реализовал в своем частичном представлении.Когда я нажимаю кнопку Изменить модальное, в отключенном DropDownListFor отображается правильное значение, но когда я отправляю форму, модель возвращается к контроллеру со значением 0.
Кто-нибудь может понять, почему это происходит?