解决方法
有很多方法和说法,最好的是主观的,可能不会在你的情况下工作,你忘记在你的问题上描述.这是我如何做到的:
模型:
public class Myviewmodel { public string SelectedItem { get; set; } public IEnumerable<Item> Items { get; set; } } public class Item { public string Value { get; set; } public string Text { get; set; } }
控制器:
public class HomeController : Controller { public ActionResult Index() { var model = new Myviewmodel { // TODO: Fetch this from a repository Items = new[] { new Item { Value = "1",Text = "item 1" },new Item { Value = "2",Text = "item 2" },new Item { Value = "3",Text = "item 3" },} }; return View(model); } [HttpPost] public ActionResult Index(Myviewmodel model) { if (!ModelState.IsValid) { // redisplay the view to fix validation errors return View(model); } // TODO: The model is valid here => // perform some action using the model.SelectedItem // and redirect to a success page informing the user // that everything went fine return RedirectToAction("Success"); } }
查看(〜/ Views / Home / Index.cshtml):
@model MyApp.Models.Myviewmodel @{ Html.BeginForm(); } @Html.EditorForModel() <input type="submit" value="OK" /> @{ Html.EndForm(); }
编辑器模板(〜/ Views / Home / EditorTemplates / Myviewmodel.cshtml):
@model MyApp.Models.Myviewmodel @Html.DropDownListFor(x => x.SelectedItem,new SelectList(Model.Items,"Value","Text"))