Ich versuche, eine Liste von Benutzern in MVC zu erstellen. Dort gibt es eine Schaltfläche zum Hinzufügen von zufällig generierten Benutzern und für jeden Benutzer gibt es eine Löschschaltfläche, um sie zu löschen Liste. Ich sende es vom Controller zur Ansicht und es generiert einen Benutzer. Wenn ich versuche, eine weitere hinzuzufügen, wird sie einfach geändert. Ich denke, es löscht die Elemente in der Liste. Ich versuche, die Liste an den Controller zurückgeben, aber es funktioniert nicht. Kann jemand bitte helfen?Das Senden einer Liste von View zu Controller führt zu einer Nullliste in MVC
My Model:
public class UsersClass
{
public int Code { get; set; }
public string Name { get; set; }
public UsersClass(int Code, string Name)
{
this.Code = Code;
this.Name = Name;
}
}
Meine Controller:
List<UsersClass> UsersList = new List<UsersClass>();
public ActionResult Index()
{
return View(UsersList);
}
[HttpPost]
public ActionResult AddUser(List<UsersClass> UsersList)
{
if (UsersList == null)
{
int a = 123;
UsersList = new List<UsersClass>();
}
Random generator = new Random();
string[] vez_nevek = new string[10] { "Kovács", "Szekeres", "Király", "Szabó", "Vicha", "Kozma", "Ferencz", "Pócsi", "Tinka", "Horváth" };
string[] ker_nevek = new string[10] { "Lajos", "Barnabás", "Róbert", "Balázs", "János", "Béla", "Petra", "Anna", "Ferenc", "Attila" };
string vezetek_nev = vez_nevek[generator.Next(vez_nevek.Length)];
string kereszt_nev = ker_nevek[generator.Next(ker_nevek.Length)];
UsersList.Add(new UsersClass(generator.Next(100000, 999999), vezetek_nev + " " + kereszt_nev));
return View("~/Views/UserManagement/Index.cshtml", UsersList);
}
Und meine Ansicht einen Benutzer hinzuzufügen:
<h2>User Management</h2>
@using (Html.BeginForm("AddUser", "UserManagement", FormMethod.Post))
{
int index = 0;
foreach (var item in Model)
{
Html.Hidden("item[" + index + "].Code", item.Code);
Html.TextBox("item[" + index + "].Name", item.Name);
index++;
}
<input type="submit" value="Add User" />
}
Ihr Versuch, 'name' Attribute zu erzeugen, die keine Beziehung zu Ihrem Modell haben und niemals an sie binden würden (und der Code, den Sie gezeigt haben, wird aufgrund des fehlenden' @ 'in' @ gar keinen HTML generieren. Html.Hidden (...) '). Erzeugen Sie Ihre Ansicht korrekt mit '@for (int i = 0; i m [i] .Code) @ Html.TextBoxFor (m => m [i] .Name)} '. Dann verweisen [diese Antwort] (http://stackoverflow.com/questions/28019793/submit-same-partial-view-called-multiple-times-data-to-controller/28081308#28081308) –