【问题标题】:Pass selected value dropdownlist to controller将选定的值下拉列表传递给控制器
【发布时间】:2019-08-31 12:37:10
【问题描述】:

我有一个 viewbag 来列出表格中的一些数据。并像这样在视图中表示:

@Html.DropDownList("GetControllerID", new SelectList(ViewBag.GetController, "", ""), htmlAttributes: new { @class = "btn-default btn input-circle"})

如何将选定的值传递给控制器​​?

ViewBag.GetControllerID = new SelectList(ListLogs.Where(o => o.CreateDate.Month == DateTime.UtcNow.Month && o.CreateDate.Year == DateTime.UtcNow.Year).ToList());

【问题讨论】:

  • 控件上的name属性是传递给控制器​​时用来存储信息的变量名。
  • ViewBag 仅将数据从 Controller 获取到 View。不是相反。
  • 什么?第二行显示什么?

标签: asp.net-mvc


【解决方案1】:

当然,当您提交表单时,您可以在为该元素设置的控制器through the name propertycatch the selected value

在这种情况下,在控制器中你可以拥有:

string selectedValue = this.HttpContext.Request.Form["GetControllerID"].ToString();

但是,如果您有一个复杂的表单,我建议您创建一个 ViewModel 并通过它将表单值传递给控制器​​。这是一个很好的简单线程:

【讨论】:

  • 如果您的下拉列表是multiselect,您可以这样检索它:var x = this.HttpContext.Request.Form["GetControllerID"]?.Where(i => i.ToString() != ",").ToList();
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-09
相关资源
最近更新 更多