私は、編集ビューからコントローラへのドロップダウンの選択値を取得しようとしています。私は、 "{" の値がnullにすることはできません\ rを\名前nParameter。:アイテム "}" 同じエラーを取得しておく。ここMVCでのドロップダウンリストの値の取得
が私の見解です:
<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>
私はgetアクションでSelectListのを作成しました。
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();
ここにコントローラがあります。バインドしようとするプロパティの名前であるadminIDを使用しましたが、ページを投稿するとエラーが返されます。
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);
}
エラーが返されるが
である "{" の値がnullにすることはできません\ rを\名前nParameter:アイテム "}"
任意のアイデアなぜadminIdにはしませんセーブ/バインド?
ルートコンフィグ
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 }
);
}
}
あなたのルートはどのように見えますか? –
@JesseMoreland、あなたがどういう意味かはっきりしていません。 –
はコントローラ行為の定義と同様に例外行を表示します。plz – Steve