2014-02-10 26 views
0

我有一个由dropdownlist元素组成的表单。我想要在控制器中获取dropdownlist的值。 我不知道该怎么做。我在控制器中使用dataview读取用户名,并希望通过dropdownlist选项更改它们的角色。我无法获得mvc3中的下拉列表值

@using (Html.BeginForm()) { 
<form name="register" action="#"> 
<div> 

    <table> 

     @foreach (MembershipUser user in Model) 
     { 
      var userroles = Roles.GetRolesForUser(user.UserName); 
       <tr> 
        <td> 
         @user.UserName 
        </td> 
        @foreach (var role in userroles) 
        { 
          <td> 
           @role 
          </td> 
        } 

        <td> 
         @Html.DropDownList("roleName") 
         @Html.ValidationMessage("roleName") 

        </td> 
        <td> 
        </td> 
       </tr> 
     }  

    </table> 
<input type="submit" class="register" value="Save" /> 
</div> 

    </form> 

    } 

,这是我的控制器:

public ActionResult Index() 
    { 
     ViewData["roleName"] = new SelectList(Roles.GetAllRoles(), "roleName"); 
     return View(Membership.GetAllUsers()); 
    } 
    [AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult Index() 
    { 
     return RedirectToAction("Index", "Home"); 

    } 

回答

0

你尝试:

public ActionResult Index(string roleNameSelectedValue) 
{ 
    // roleNameSelectedValue is the "Value" field of selected item in your dropdownlist 
    return RedirectToAction("Index", "Home"); 
} 

或者使用@Html.DropDownListFor(m => Model.roleName, ViewBag.roleName as SelectList)

+0

我想这和写值出现错误页面上响应.WRITE(roleNameSelectValue) –