代码之家  ›  专栏  ›  技术社区  ›  Mahesh Velaga

如何在MVC视图中获取下拉列表的选定值

  •  0
  • Mahesh Velaga  · 技术社区  · 16 年前

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

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

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

    如何访问它?我试图从intellisense中找出一些东西,但没有相关的东西出现,非常感谢您的帮助。

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

    编辑2: 如果看不到,请解释原因,我更想知道。

    谢谢。

    4 回复  |  直到 16 年前
        1
  •  1
  •   Neil T.    16 年前

    阅读完问题后,听起来您想让下拉列表为同一页的下半部分提供一个值。

    首先,您需要将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变量的值,必须有一个submit按钮或类似的结构。
    2. 您需要设置一个控制器方法,该方法将处理值的处理,然后使用页面的ViewData中的选定值重定向回原始页面。
    3. 最后,您需要设置视图,以便只有在dropid变量中有一个有效值时,才显示后处理部分。

    这并不像在视图中放置DropDownList,然后在稍后的页面中使用该值那么简单。您必须让控制器参与管理数据传输,并且必须设置单个视图来处理多个状态(即在选择值之前和之后)。

        2
  •  1
  •   Darin Dimitrov    16 年前

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

        3
  •  0
  •   Codewerks    16 年前

    所选值将位于从该视图接收表单提交的控制器操作中具有下拉列表ID名称的FormCollection或QueryString集合中。您可以通过经典的POST或GET或Ajax提交这些值,但是您必须连接处理输入的服务器端操作。

        4
  •  0
  •   Alexander Taran    16 年前

    还有一个selectlist类,wich允许您定义将要选择的wich项。知道这一点,你就会知道选择的价值。 也。。如果没有显式选择任何值,下拉列表倾向于选择列表中的第一个项目。