asp.net-mvc – 在ASP.NEt MVC 3中传递Html.BeginForm()中DropDownList的SelectedValue

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 在ASP.NEt MVC 3中传递Html.BeginForm()中DropDownList的SelectedValue前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这是我的查看代码
  1. @using(Html.BeginForm(new { SelectedId = /*SelectedValue of DropDown*/ })) {
  2.  
  3. <fieldset>
  4.  
  5. <dl>
  6. <dt>
  7. @Html.Label(Model.Category)
  8. </dt>
  9. <dd>
  10. @Html.DropDownListFor(model => Model.Category,CategoryList)
  11. </dd>
  12. </dl>
  13.  
  14. </fieldset>
  15. <input type="submit" value="Search" />
  16.  
  17.  
  18. }

如图所示,我需要将下拉选择值传递给BeginForm()Html帮助器中的操作.你的建议是什么?

解决方法

提交表单时将传递选定的值,因为下拉列表由< select>表示.元件.您只需调整视图模型,使其具有名为SelectedId的属性,例如,您将绑定下拉列表:
  1. @using(Html.BeginForm() )
  2. {
  3. <fieldset>
  4. <dl>
  5. <dt>
  6. @Html.LabelFor(x => x.SelectedId)
  7. </dt>
  8. <dd>
  9. @Html.DropDownListFor(x => x.SelectedId,Model.CategoryList)
  10. </dd>
  11. </dl>
  12. </fieldset>
  13.  
  14. <input type="submit" value="Search" />
  15. }

这假定以下视图模型:

  1. public class Myviewmodel
  2. {
  3. [DisplayName("Select a category")]
  4. public int SelectedId { get; set; }
  5.  
  6. public IEnumerable<SelectListItem> CategoryList { get; set; }
  7. }

将由您的控制器处理:

  1. public ActionResult Index()
  2. {
  3. var model = new Myviewmodel();
  4. // TODO: this list probably comes from a repository or something
  5. model.CategoryList = new[]
  6. {
  7. new SelectListItem { Value = "1",Text = "category 1" },new SelectListItem { Value = "2",Text = "category 2" },new SelectListItem { Value = "3",Text = "category 3" },};
  8. return View(model);
  9. }
  10.  
  11. [HttpPost]
  12. public ActionResult Index(Myviewmodel model)
  13. {
  14. // here you will get the selected category id in model.SelectedId
  15. return Content("Thanks for selecting category id: " + model.SelectedId);
  16. }

猜你在找的asp.Net相关文章