ASP.NET MVC 5-Modellbindungsliste ist leer
Ich blieb eine Weile bei diesem Thema.
Ich habe ein einfaches Ansichtsmodell erstellt:
public class AddTranslationViewModel
{
public List<ProjectTranslation> ProjectTranslations { get; set; }
public AddTranslationViewModel()
{
ProjectTranslations = new List<ProjectTranslation>();
}
}
ProjectTranslation-Klasse:
public class ProjectTranslation
{
public int ProjectTranslationId { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public string Address { get; set; }
public int LanguageId { get; set; }
public Language Language { get; set; }
public int ProjectId { get; set; }
public Project Project { get; set; }
}
Eine einfache Ansicht, die das AddTranslationViewModel verwendet
<table class="table">
@foreach (var item in Model.ProjectTranslations)
{
@Html.HiddenFor(modelItem => item.ProjectTranslationId)
<tr>
<td>
@Html.DisplayFor(modelItem => item.Language.LanguageCode)
</td>
<td>
@Html.EditorFor(modelItem => item.Title)
</td>
</tr>
}
</table>
<input type="submit" value="Send" />
und endlich meine POST-Methode:
public ViewResult AddTranslation(AddTranslationViewModel projectTranslations)
{
if (ModelState.IsValid)
{
//...
}
return View(projectTranslations);
}
Die Idee ist sehr einfach, ich möchte eine Liste von Elementen anzeigen, in denen es möglich sein soll, die Werte zu ändern / zu bearbeiten.
Die Modellbindung funktioniert jedoch nicht, der Parameter projectsTranslations in der HTTPPost-Methode AddTranslation ist immer leer.
Was ist der Fehler hier?