从@HtmlDropDown中获取选定的值

时间:2015-06-14 13:10:07

标签: c# asp.net-mvc razor

所以我得到了我的下拉列表的值,但我想从这个下拉列表中获取选定的值。怎么做?

型号:

  public partial class Region
{
    public int Id_regionu { get; set; }
    public string Nazwa { get; set; }
}

控制器:

    public class HomeController : Controller
{


    private inzS9776Entities db = new inzS9776Entities();
    protected override void Dispose(bool disposing)
    {
        db.Dispose();
        base.Dispose(disposing);
    }
    public ActionResult Index()
    {
        ViewBag.Regiony = new SelectList(db.Region,"Id_regionu", "Nazwa");
        return View();
    }

并使用下拉列表查看:

  <div class="jumbotron">
    <legend>
        <h2>Wyszukaj wycieczkę</h2></legend><br/>
    <form action="">
        <div class="container">
            Wybierz kierunek:
            @Html.DropDownList("Regiony",null, String.Empty)<br />
            Data wyjazdu:
            <input class="date" type="date" name="startDate"><br><br>
        </div>
    </form>

`

2 个答案:

答案 0 :(得分:1)

将您的<form action="">替换为:

@using (Html.BeginForm("MyActionName") {
    // ...  
    //here add to your dropdown and give it a name
    @Html.DropDownList("Regiony", null, String.Empty)
    // ...
}

<select>元素的名称属性(下拉列表)将为&#34; Regiony&#34;。

在你的控制器中:

public ActionResult MyActionName(string Regiony) {
   // here Regiony variable contains the selected value.
   // ...
}

答案 1 :(得分:0)

这是我采取的方法;

1)检索项目并将其存储在SelectListItem列表中。 2)使用SelectListItem列表将其分配给下拉列表。 3)使用模型字段将下拉列表与选定的值

绑定

查看

<div class="col-sm-8">
    @{
        List<SelectListItem> listItems = new List<SelectListItem>();
        foreach (LookupData l in Model.HeatingTypeData)
        {
            listItems.Add(new SelectListItem { Text = l.LookupDescription, Value = l.LookupCode });
        }
    }
    @Html.DropDownListFor(m => m.HeatingType, listItems, new { @class = "form-control" })
    @Html.ValidationMessageFor(m => m.HeatingType)
</div>

型号:  示例中使用的模型(VoidProperty)包含HeatingType作为LookupData列表和获取列表的方法:

public List<LookupData> HeatingTypeData { get; set; }

    public static List<LookupData> GetHeatingType()
    {
        return LookupData.GetDataList("HeatingType").OrderBy(m => m.SortOrder).ToList();
    }

然后是LookupData:

public class LookupData : ILookup
    {
        public string LookupCode { get; set; }
        public string LookupDescription { get; set; }
        public int SortOrder { get; set; }

        public static List<LookupData> GetDataList(string LookupGroup)
        {
            DBContexts.VoidsDBContext context = new DBContexts.VoidsDBContext();
            var Params = new SqlParameter { ParameterName = "LookupGroup", Value = LookupGroup };
            return context.Database.SqlQuery<LookupData>("p_LookupList @LookupGroup", Params).ToList();
        }
    }

控制器返回视图并传递模型的实例;

VoidProperty _property = new VoidProperty();
......
......
_property.HeatingTypeData = VoidProperty.GetHeatingType();
......
return View(_property);