我在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??
}
答案 0 :(得分:1)
我希望你的观点不包含控制器代码!您将拥有一个将绑定到所选值的模型,因此当回发到控制器操作时,您想要的值已经绑定。
您需要在模型中创建一个属性作为SelectedValue并使用来自另一个属性的项目列表(Model.AllRoles)绑定到该属性
示例:
型号:
public IEnumerable<SelectListItem> AllRoles {get; set;}
public string SelectedRole {get; set;}
查看:
@Html.DropDownListFor(m => m.SelectedRole, Model.AllRoles)
提交给控制器后,模型将具有所选值