如何从Dropdownlist中获取选定值到ASP.NET MVC 5中的控制器

时间:2016-05-25 10:19:24

标签: c# asp.net asp.net-mvc asp.net-mvc-4 razor

我无法从所选项目dropdownList中获取值。 我需要将值传递给另一个视图。

视图模型:

public class HomeVM
{
    public IEnumerable<SelectListItem> UserList { get; set; }
    public IEnumerable<Examination> Exam { get; set; }
    public string SelectedUser { get; set; }  
}

控制器: (这里首先检查是否有任何有效的考试,它运作正常。)

public ActionResult Index()
{
    var activeExam = db.Examinations.Where(o => (o.StartTime <=   DateTime.Now && o.Duration > DateTime.Now)).ToList();
    if(activeExam != null)
    {
        var hVM = new HomeVM { Exam = activeExam };
        hVM.UserList = db.Users
            .Select(o => new SelectListItem
            {
                Value = o.UserID.ToString(),
                Text = o.Name
            });
        return View(hVM);
    }
    var nullHomeView = new HomeVM();
    return View(nullHomeView);
}

查看: (我已经删除了我认为只是为了可读性而占用空间的代码,我已经删除了用于创建表和行等的代码)

@model ProjWebb.ViewModels.HomeVM
....
@if (Model.Exam != null)
{
    foreach (var item in Model.Exam)
    {
        <tr>
            <td width="20%">
                @Html.DisplayFor(model => item.Cours.Name)
            </td>
            <td width="20%">
                @Html.DisplayFor(model => item.ExamID)
            </td>
            <td width="20%">
                @Html.DisplayFor(model => item.StartTime)
            </td>
            <td width="20%">
                @Html.DropDownList("UserList") 
            </td>

我不知道如何获取所选值,尤其是在没有BeginForm的情况下。 计划是只有一个链接,用户可以在下拉列表中选择名称时单击该链接,然后将该链接中的userID传递给控制器​​。

1 个答案:

答案 0 :(得分:0)

hVM.UserList = db.Users
                .Select(o => new SelectListItem
                {
                    Value = o.UserID.ToString(),
                    Text = o.Name
                },selectedUserId.Value);

您可以获取模型中的值以及您可以在此处设置的值。 as selectedUserId.value