将参数从Htmldropdownlistfor传递给控制器

时间:2017-07-31 09:48:09

标签: c# asp.net-mvc razor

我的asp.net mvc5网站上有一个从控制器传递到模型的模型。然后我使用模型显示下拉列表,我想在提交表单时传回一个id。这是我的模特:

public class SiteDirectionModel
{
    public int id { get; set; }
    public string name { get; set; }
}

然后在模型中,我使用List<SiteDirectionModel>向我添加我需要的每个项目的新实例。我填写这两个列表,然后将我的模型传递给视图。

@model List<SiteDirectionModel>

@using (Html.BeginForm("GetSiteRF", "Create", FormMethod.Post))
{
    @Html.DropDownListFor(x => x.name,new SelectList(Model.name,"Sites"));
    <input type="button" value="Selectionner" class="btn btn-primary"/>
}

然后如何检索每个name的ID?以及如何将它作为参数传递给我的控制器?这样我就会:

public ActionResult GetSiteRF(int id)
{
    int newId = id;
    //Call method to searchId ...
    return View("CreateADUser");
}

1 个答案:

答案 0 :(得分:1)

我已经给出了如何绑定并从下拉列表获取值。请使用您自己的BL。

你的模特应该是这样的。

public class Something
{
    public int Id { get; set; }
    public string Name { get; set; }
}

public class SiteDirectionModel
{
    public SelectList MyDropDown { get; set; }

    public int SelectedValue { get; set; }
}

你BL应该是这样的。

public List<Something> GetListofSomething()
{
    //your logic.

}

你的Get方法应该是这样的。

 public ActionResult MyGetMethod()
    {
        SiteDirectionModel model = new SiteDirectionModel();
        model.MyDropDown = new SelectList(GetListofSomething(), "key_field_name", "value_field_name", "default_value");
    }

然后最后HTML

@Html.DropDownListFor(x => x.SelectedValue,Model.MyDropDown)