У меня возникли проблемы с привязкой модели, содержащей список объектов. Нет проблем, когда я пытаюсь передать данные с контроллера на представление, но когда я хочу отправить данные обратно, я получаю сообщение о том, что метод не существует.MVC Model Binding Список объектов
Я использую вызов ajax, и в качестве данных я помещаю $ form.serialize() и вижу список со всеми данными в скрипаче, но мне не повезло с привязкой.
Модель является:
public class Single
{
public int Id {get;set;}
public string Name {get;set;}
public List<SimpleDropdown> dddl {get;set;}
public int SelectedEmp {get;set;}
}
public class MainModel
{
public List<Single> main_model_list {get;set;}
}
В мой контроллер метод сейчас является:
[HttpPost]
public string SaveModel(MainModel model)
{
return "";
}
Этот метод не дозвонились, но когда я удалить параметр вызывные работы. Поэтому я уверен, что привязка не работает. У меня была намного более сложная модель, но я упростил ее настолько, насколько могу, и до сих пор не мог заставить ее работать.
Так что мой вопрос: как я могу проверить это, чтобы узнать, в чем проблема?
Edit:
Я не имею код в данный момент, но этот код является функциональным, потому что я использую его в других местах в проекте. Это что-то вроде этого:
$("#form").submit(function() {
$.ajax({
url: "/Controller/SaveModel",
type: "POST",
data: $(this).serialize()
});
});
форма выглядит примерно так:
@using (Html.BeginForm("SaveModel", "Home", FormMethod.Post, new { id = "form" }))
{
@for (var z = 0; z < ViewBag.groupes.Length; z++)
{
<div style="border-left: 1px solid black">
<h1>@ViewBag.groupes[z]</h1>
</div>
}
@for (var i = 0; i < Model.main_model_list.Count; i++)
{
<div>@Html.LabelFor(x => x.main_model_list[i].Id)</div>
<div>@Html.LabelFor(x => x.main_model_list[i].Name)</div>
<div style="float: left">@Html.DropDownListFor(x => main_model_list[i].SelectedEmp, new SelectList(main_model_list[i].dddl, "Id", "Value", main_model_list[i].SelectedEmp), new { @class = "preferences_dd_lists" })</div>
}
}
И где ваш аякс-вызов? – PSL
Как вы выводите представление? Вы случайно используете «foreach»? –
Я использую элемент stat, передающий все элементы и их свойства из списка main_model_list. – Aleks