Asp.net mvc ASP.NET MVC-在控件中获取下拉选择时遇到问题

Asp.net mvc ASP.NET MVC-在控件中获取下拉选择时遇到问题,asp.net-mvc,Asp.net Mvc,一旦用户选择了一个值并通过视图提交,我就无法从控制器中访问用户的下拉选择。 下拉菜单正在正确填充,我已经编写了一个简单的JavaScript函数,在选择发生更改时向用户发出警告。通过警报,我看到RoleID值。我似乎无法在控制器中访问它。请看下面我的代码和帮助!先谢谢你 型号: public class dbModels public class UserAccessRequestViewModel { dbEntities _dbEntities = new d

一旦用户选择了一个值并通过视图提交,我就无法从控制器中访问用户的下拉选择。
下拉菜单正在正确填充,我已经编写了一个简单的JavaScript函数,在选择发生更改时向用户发出警告。通过警报,我看到RoleID值。我似乎无法在控制器中访问它。请看下面我的代码和帮助!先谢谢你

型号:

public class dbModels
    public class UserAccessRequestViewModel
    {
        dbEntities _dbEntities = new dbEntities();

        public IEnumerable<ActiveRoles> Roles { get; set}
        public Guid selectedRoleID { get; set:}

        public class ActiveRoles
        {
            public Guid RoleID { get; set; }
            public string RoleName { get; set; }
        }

        public List<ActiveRoles> GetActiveRoles()
        {
            var ActiveRoles = dbEntities.LU_ROLE.Where(x => x.ACTIVE)
            .Select (x => new ActiveRoles { RoleID = x.ROLE_ID, RoleName = x.ROLE_NAME }).ToArray();
            return  activeRoles.ToList();
        }
    }

选择输入应该是表单的一部分

<div class="form-actions no-color" style="margin:4px; padding:4px">
    @using (Html.BeginForm("Approve", "UserAccessRequestManagement", FormMethod.Post))
    {

     <div class="text-left" style="margin:4px; padding:4px">
         <h2>Assign Role</h2>  
               @Html.DropDownList(model => model.selectedRoleID, new SelectList(Model.Roles, "RoleID", "RoleName"), new { @onchange = getUserRoleID(this)" })
     </div>
        <input type="submit" value="Approve" class="btn btn-default" />
    }
    @Html.ActionLink("Back to List", "Index")
</div>
或者,如果您只想在POST操作中使用选定的guid,请将其设置为

public class UserAccessRequestManagementController : Controller
    dbModels.UserAccessRequestViewModel _UserAccessRequestViewModel = new dbModels.UserAccessRequestViewModel();

    [HttpPost, ActionName("Approve")]
    public ActionResult Approve(UserAccessRequestViewModel model)
    {
        Guid RoleID = model.selectedRoleID;
    }
[HttpPost, ActionName("Approve")]
public ActionResult Approve(Guid selectedRoleID)
{
    Guid RoleID = selectedRoleID
}

我已经做了建议的修改,包括整个模型,它对roleID非常有效。我对答案投了赞成票,但由于我的声誉不足15(我是一个新用户),所以它没有公开显示。在通过整个模型之前,我传递了UserRequestID,所以我现在正在尝试找到传递该值的最佳方式。我想我可能需要创建一个@Html.HiddenFor,并将UserRequestID放入模型中。我已经使用了该解决方案并在此基础上构建了它。一切都很顺利。非常感谢你!
public class UserAccessRequestManagementController : Controller
    dbModels.UserAccessRequestViewModel _UserAccessRequestViewModel = new dbModels.UserAccessRequestViewModel();

    [HttpPost, ActionName("Approve")]
    public ActionResult Approve(UserAccessRequestViewModel model)
    {
        Guid RoleID = model.selectedRoleID;
    }
[HttpPost, ActionName("Approve")]
public ActionResult Approve(Guid selectedRoleID)
{
    Guid RoleID = selectedRoleID
}