MVCのhtmlhelperのdropdownlistを使用する際に問題が発生しています。ポストバックが発生すると、何も選択されず、リストのモデル内の値と選択された項目がnullになります。ここでMVC DropDownListFor null値
私のモデルです:
namespace MvcTestWebApp.Models
{
public class Customer
{
public string name { get; set; }
public List<SelectListItem> members { get; set; }
public Member selected { get; set; }
}
public class Member
{
public string name { get; set; }
}
}
コントローラー:
namespace MvcTestWebApp.Models
{
public class CustomerController : Controller
{
//
// GET: /Customer/
public ActionResult Index()
{
Customer cust = new Customer() { name = "Cust1" };
cust.members = new List<SelectListItem>();
cust.members.Add(new SelectListItem(){Text = "Bob"});
cust.members.Add(new SelectListItem(){Text = "Dave"});
return View(cust);
}
[HttpPost]
public ActionResult Index(Customer customer)
{
return View();
}
}
}
とビュー:
@model MvcTestWebApp.Models.Customer
@{
ViewBag.Title = "Customer";
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title> Index </title>
</head>
<body>
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Customer Data</legend>
@Html.HiddenFor(model => model.name)
@Html.DropDownListFor(model => model.selected, Model.members, "--Select--")
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}
</body>
</html>
私が選択リストから何かを選択し、送信ボタンヌルをクリックしている場合返された:
誰かが私が間違っていることについていくつかの光を当てることができますか?へ
cust.members.Add(new SelectListItem(){Value = "Bob", Text = "Bob"});
cust.members.Add(new SelectListItem(){Value = "Dave", Text = "Dave"});
もちろんです。ありがとうスティーブン。あなたがどのように知っているときは簡単。 –
+1 "コントローラアクションのパラメータにFormCollectionコレクションを追加して、MVCがメソッドに渡すオブジェクトを構築するためにMVCが使用している情報を確認できます。"私は間違って別のフォームのためのアトリビュートフォームを設定し、私は数時間の間、私のDropDownListForはGuidを返すことを望んでいないと思った... FormCollectionは、 – cadi2108