Model view controller 如何在MVC5中创建所有用户的下拉列表

Model view controller 如何在MVC5中创建所有用户的下拉列表,model-view-controller,asp.net-mvc-5,Model View Controller,Asp.net Mvc 5,我有几个用户在我的MVC5应用程序中创建了角色。我有一个包含基本票证信息的票证模型。但是现在我想在这个票证模型中添加一个名为“Assigned to”的属性,并将这个属性值分配给可用的用户 在我看来,我希望有一个所有可用用户的下拉列表,以便我可以选择一个用户来分配票据。如何在模型中创建此属性,以及如何使其成为视图中的下拉列表?谢谢 更新1: 在我的Index()方法中,我已经有一个现有的actionresult模型要返回到视图,如下所示: Models.Application model = d

我有几个用户在我的MVC5应用程序中创建了角色。我有一个包含基本票证信息的票证模型。但是现在我想在这个票证模型中添加一个名为“Assigned to”的属性,并将这个属性值分配给可用的用户

在我看来,我希望有一个所有可用用户的下拉列表,以便我可以选择一个用户来分配票据。如何在模型中创建此属性,以及如何使其成为视图中的下拉列表?谢谢

更新1: 在我的Index()方法中,我已经有一个现有的actionresult模型要返回到视图,如下所示:

Models.Application model = db.Applications
            .Include("Source")
            .Include(.....)
            .SingleOrDefault(m => m.Id == id);

        if (model == null)
        {
            return new HttpNotFoundResult();
        }

        return View(model);

如何将您在Index()方法中建议的代码与我已有的代码结合起来?

查询您的数据库以获取用户列表,然后将其转换到您的视图模型中。确保您不会直接从数据库传递用户类,因为您将向浏览器发送密码、salt等。您应该将它从DB形状转换为VM形状,只包含视图中所需的字段

视图模型:

class MyViewModel
{ 
     public IEnumerable<User> Users { get; set; }
     public string User { get; set;}
}

[HttpGet]
public ActionResult Index()
{
    var viewModel = new MyViewModel()
    {
         Users = <map users from db>
    };

    return this.View(viewModel);
}

您好,在我的Index()方法中,我已经有一个现有的actionresult模型要返回到视图。如何将您在Index()方法中建议的代码与我已有的代码结合起来?请参阅问题帖中的“我的更新1”。解决此问题的关键是确保您的视图模型中有一个用户列表,以及DropDownList for的
新选择列表部分。我可以假定您的模型吗?应用程序包含用户列表?不。我的模型。应用程序仅包含基本票证信息。我的问题是我不知道如何将用户列表添加到此模型中。
 <div class="form-group">
    @Html.LabelFor(m => m.User)
    <div class="col-md-10">
        @Html.DropDownListFor(x => x.User, new SelectList(Model.Users, "Id", "Name"), new { @class = "form-control" })
        @Html.ValidationMessageFor(m => m.OriginStation, "", new { @class = "text-danger" })
    </div>
 </div>
[HttpPost]    
public ActionResult Index(MyViewModel viewModel)
{
    viewModel.User now contains the id of the user
}