0

我在控制器的 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??
    }
4

1 回答 1

1

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

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

例子:

模型:

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

public string SelectedRole {get; set;}

看法:

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

当提交给您的控制器时,模型将具有选定的值

于 2013-10-12T13:29:55.913 回答