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