【问题标题】:Getting Selected Item From a Dropdown MVC从下拉 MVC 中获取所选项目
【发布时间】:2011-11-23 04:44:58
【问题描述】:

我创建了一个这样的下拉列表:

 <%= Html.DropDownList("Nick") %> 

当用户选择一个项目时,我想将该项目的文本发送回控制器 Action。我猜我添加了具有 [HTTPPOST] 属性的 get 控制器的相同名称,但是如何将所选项目文本传递到控制器中?

我希望这 2 发生在 2 个场景中 -当用户选择一个项目时 - 在 html 中添加一个按钮(我不确定最好的方法??)以及当用户单击按钮时

下拉选择的文本被发送。

我正在从控制器中填充的 ViewData["items"] 中填充下拉列表。

【问题讨论】:

  • 在用户选择一个项目之后?或者当用户点击提交时?那在下拉菜单中?
  • 你能给我举个例子吗?

标签: asp.net asp.net-mvc


【解决方案1】:

您需要一个表格。您需要填充下拉列表。如果您希望在选择项目后立即发送表单,则需要半行 javascript。

<% using (Html.BeginForm()) { %>
  <%: Html.DropDownList("nick",
        new SelectList[] { new[] { "hello", "world", "wazza" } }, 
        new { @onchange = "this.form.submit()" })%>
<% } %>

您可能还希望您的控制器接收一个值而不是列表选项中的文本。有关详细信息,请参阅SelectList class

【讨论】:

  • 这对我不起作用,它说这些参数没有过载...我正在从 ViewData["items"] 填充裁剪
  • 我让它工作了,但它返回的是值而不是文本。如何返回文本?
【解决方案2】:

让您的表单提交到此操作。

public ActionResult MyAction(string nick)
{
   //do stuff
}

【讨论】:

  • 如何触发 web 表单中的 selectItem_Change 事件?
  • @Nick,它没有。 MVC 中没有服务器端事件处理程序的概念。如果您需要在用户选择项目后执行某些操作,那么您需要使用 javascript。编辑您的问题,告诉我们您想要发生的事情。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-01
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-06
相关资源
最近更新 更多