从httpGet方法获取下拉列表的选定值到httpPost

时间:2013-10-12 13:21:51

标签: c# asp.net html.dropdownlistfor

我在controller的httpGet中创建了一个下拉列表。现在我希望在HttpPost方法中选择dropdownlsit的值作为字符串来执行进一步的操作。在我的情况下,我在get方法中创建了一个角色下拉列表,我想要删除在httpPost方法中选择的角色。我怎么能这样做?任何帮助都会受到赞赏。这是我的代码。

   [HttpGet]
    public ActionResult DeleteRole(RoleManager role)
    {

       string[] allRoles = ((CustomRoleProvider)Roles.Provider).GetAllRoles(role);
        var roleModel = new RoleManager
        {
            AllRoles = allRoles.Select(x => new SelectListItem() { Text = x, Value = x })
        };

        return View(roleModel);

    }

查看:

       @Html.DropDownListFor( m => m.AllRoles,new SelectList (Model.AllRoles,"Text","Value"))

    [HttpPost]
    public ActionResult DeleteRole()
    {
       //get selected value of dropdownlist in a string??
    }

1 个答案:

答案 0 :(得分:1)

我希望你的观点不包含控制器代码!您将拥有一个将绑定到所选值的模型,因此当回发到控制器操作时,您想要的值已经绑定。

您需要在模型中创建一个属性作为SelectedValue并使用来自另一个属性的项目列表(Model.AllRoles)绑定到该属性

示例:

型号:

public IEnumerable<SelectListItem> AllRoles {get; set;}

public string SelectedRole {get; set;}

查看:

@Html.DropDownListFor(m => m.SelectedRole, Model.AllRoles)

提交给控制器后,模型将具有所选值