0

我在 MVC 视图中有一个下拉菜单,如下所示:

Html.DropDownList(id, Range(0,10)
                        .Select(x => new SelectListItem {Text = x, Value = x}))

在视图本身中,我需要此下拉列表的选定值。我知道我可以在 JavaScript 中访问它,但我正在寻找一种方法来从下拉属性或类似的东西中获取它。

我怎样才能访问它?我试图从智能感知中找出一些东西,但没有出现任何相关的东西,非常感谢帮助。

编辑:我想要在下拉声明后几行之后的值,我知道我可以从 JavaScript 访问它并通过发布表单,是否无法在视图本身上访问它?

Edit2:如果无法在视图中访问它,请说明原因,我更有兴趣了解它。

谢谢。

4

4 回答 4

1

要获取选定的值,您可以使用 javascript 或控制器操作,将包含选择框的表单提交到该操作。

于 2009-12-26T17:41:10.003 回答
1

阅读您的问题后,听起来您希望下拉列表为同一页面的较低部分提供值。

首先,您需要将 DropDownList 放在表单结构中,如下所示:

<% using (Html.BeginForm("ProcessValue", "ThisPage")) { %>
    <%= Html.DropDownList("DropID", Range(0, 10).Select(a=>new SelectListItem { Text = x, Value = x }) %>
    <input type=submit value="Submit" />
<% } %>

您需要提前设置一些东西:

  1. 您必须有一个提交按钮或类似的构造,才能检索 DropID 变量的值。
  2. 您需要设置一个控制器方法来处理值的处理,然后使用页面的 ViewData 中的选定值重定向回原始页面。
  3. 最后,您需要设置视图,以便只有在 DropID 变量中有有效值时才会显示后处理部分。

It's not as simple as just placing a DropDownList in a view and then using that value later on in the page. You have to get the controller involved to manage the data transport and you have to set up the single view to handle multiple states (ie. before the value is selected and after the selection takes place).

于 2009-12-27T02:25:37.197 回答
0

所选值将在 FormCollection 或 QueryString 集合中,其名称与从该视图接收表单提交的控制器操作中的 DropDown 的 ID 相同。您可以使用经典的 POST 或 GET 或通过 AJAX 提交值,但您必须连接一个处理该输入的服务器端操作。

于 2009-12-26T17:48:27.557 回答
0

还有一个 SelectList 类,它允许您定义将选择哪个项目.. 并且知道 - 您将知道所选值.. 另外.. 如果没有明确选择值,下拉菜单倾向于选择列表中的第一个项目.

于 2009-12-27T01:29:04.130 回答