Mam problem z powiązaniem modelu zawierającego listę obiektów. Nie ma problemów, gdy próbuję przekazać dane z kontrolera do widoku, ale kiedy chcę wysłać dane z powrotem, otrzymuję komunikat, że metoda nie istnieje.Binding Lista obiektów MVC obiektów
Używam wywołania ajax i jako dane umieszczam $ form.serialize() i widzę listę z wszystkimi danymi w skrzypku, ale nie mam szczęścia z powiązaniem.
modelu jest:
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;}
}
W moim kontrolera metoda jest teraz:
[HttpPost]
public string SaveModel(MainModel model)
{
return "";
}
Ta metoda nie sprawdzony, ale kiedy usunąć parametr prace dzwoni. Więc jestem pewien, że wiązanie nie działa. Miałem dużo bardziej skomplikowany model, ale uprościłem go tak bardzo, jak tylko mogę i nadal nie mogłem go uruchomić.
Moje pytanie brzmi: jak mogę to sprawdzić, aby zobaczyć, jaki jest problem?
Edit:
nie mam kodu w tej chwili, ale że kod jest funkcjonalny, ponieważ używam go w innych miejscach w projekcie. Jest coś takiego:
$("#form").submit(function() {
$.ajax({
url: "/Controller/SaveModel",
type: "POST",
data: $(this).serialize()
});
});
Formularz wygląda mniej więcej tak:
@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>
}
}
A gdzie jest twoje połączenie ajax? – PSL
Jak wypisać widok? Czy przez przypadek używasz "foreach"? –
Korzystam z for formentment przekazując wszystkie elementy i ich właściwości z listy main_model_list. – Aleks