Ich versuche, den ausgewählten Wert eines Dropdown-Menüs aus der Bearbeitungsansicht an den Controller zu senden. Ich halte die gleichen Fehler "{" Der Wert darf nicht null sein \ r \ nParameter Name:. Artikel "}"Abrufen des Dropdown-Listenwerts in MVC
hier meiner Meinung nach ist:
<div class="form-group">
@Html.LabelFor(model => model.adminID, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(model => model.adminID, new SelectList(ViewBag.Admins, "Value", "Text"), htmlAttributes: new { @class = "form-control", @name = "admin" })
@Html.ValidationMessageFor(model => model.adminID, "", new { @class = "text-danger" })
</div>
</div>
ich die Select in der get Aktion erstellt .
var admins = from a in db.members
select new { name = a.student.Fname + " " + a.student.Sname, id = a.StudentID };
ViewBag.Admins = admins.Select(a => new SelectListItem
{
Text = a.name,
Value = a.id
}).ToList();
Und hier ist der Controller. Ich habe adminID verwendet, den Namen der Eigenschaft, um es zu versuchen, aber es gibt den Fehler zurück, wenn ich die Seite poste.
public async Task<ActionResult> Edit([Bind(Include = "ClubId,ClubName,CreationDate,adminID")] Club club)
{
if (ModelState.IsValid)
{
db.Entry(club).State = EntityState.Modified;
await db.SaveChangesAsync();
return RedirectToAction("Index");
}
return View(club);
}
Der Fehler ist
"{" Wert nicht null sein kann \ r \ nParameter. Name: Artikel "}" zurückgegeben wird
Irgendwelche Ideen, warum wird die adminID nicht speichern/binden?
Strecke Config
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Clubs", action = "Index", id = UrlParameter.Optional }
);
}
}
Wie sehen Ihre Routen aus? –
@JesseMoreland, nicht ganz sicher, was du meinst. –
zeigen Sie die Zeile der Ausnahme sowie die Controller-Action-Definition plz – Steve