C#MVC - 检索表单上的下拉列表选项值

时间:2017-01-16 12:07:35

标签: c# asp.net-mvc forms

我已在我的视图中成功实现了一些从我的数据库表中正确显示数据的下拉列表。但是,当我提交表单并请求过滤数据时,我遇到了问题。

在我的post方法中,我使用Form Collection来收集在提交中选择的数据。但是,当我访问数据时,它返回Select选项文本,而不是它的实际值,这就是我所追求的。例如:

 <select class="form-control" id="SelectedValue" name="SelectedValue">
      <option value="@item.itemValue">@item.itemName</option> 
 </select>

 string example = collection["SelectedValue"];
在调试代码时,将为

字符串示例分配item.itemName。我怎样才能返回item.itemValue?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果可能,我建议使用此方法

查看:

  @using (Html.BeginForm("", ""))
{    @Html.DropDownListFor(x=>x.modval,xxx.Models.selectclass.Dropl.GetDropval("1"), null, new { style = "color: black", @class = "form-control" })
<input type="submit" />
}

模型

public static class Dropl 
        {
            public static IEnumerable<SelectListItem> GetDropval(object selectedValue)
            {
                return new List<SelectListItem>
        {

          new SelectListItem{ Text="Japan", Value = "Japan", Selected = "1" == selectedValue.ToString()},
          new SelectListItem{ Text="Jersey", Value = "Jersey", Selected = "2" == selectedValue.ToString()},
          new SelectListItem{ Text="Kazakhstan", Value = "Kazakhstan", Selected = "3" == selectedValue.ToString()},

          new SelectListItem{ Text="Russian Federation", Value = "Russian Federation", Selected = "4" == selectedValue.ToString()},


        };
            }
        }