私はMVCを初めて使用します。私は次のRazorコードを持っています:
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset style="margin:5px">
<legend>List a Bicycle for Sale</legend>
<div class="editor-label">
@Html.LabelFor(model => model.BicycleManfacturer)
</div>
<div class="editor-field">
@Html.DropDownList("ManufacturerList")
</div>
....
....
<div class="float-right">
<input type="submit" value="List Bike" />
</div>
</fieldset>
}
「ManufacturerList」はSelectedListItem
、ViewBagに保存されているリストです(すべてのドロップダウンリストのモデルを作成したくありませんでした)。これは、次の方法でビルドされます。
private void HydrateManufacturerList()
{
var manufacturerList = (from row in db.BicycleManufacturer.ToList()
select new SelectListItem
{
Text = row.Description,
Value = row.BicycleManufacturerId.ToString()
}).ToList();
manufacturerList.Add(new SelectListItem
{
Text = "-- Select Manufacturer --",
Value = "0",
Selected = true
});
ViewBag.ManufacturerList = manufacturerList.OrderBy(row => row.Text);
}
送信が完了すると呼び出される次のコードがあります。
[HttpPost]
public ActionResult Create(BicycleSellerListing bicyclesellerlisting)
{
bicyclesellerlisting.ListingDate = System.DateTimeOffset.Now;
if (ModelState.IsValid)
{
db.BicycleSellerListing.Add(bicyclesellerlisting);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(bicyclesellerlisting);
}
ユーザーがビューをコントローラーにポストバックし、このメソッドが実行されたときに、ドロップダウンリストから選択したメーカーを取得する方法がわかりません。