【问题标题】:How to create drop down list of all user in MVC5如何在 MVC5 中创建所有用户的下拉列表
【发布时间】:2017-07-04 13:35:15
【问题描述】:

我有一些用户在我的 MVC 5 应用程序中创建了角色。我有一个包含基本票务信息的票务模型。但现在我想向此票证模型添加一个名为“分配给”的属性,并且我想将此属性值分配给可用的用户。

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

更新 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() 方法中建议的代码与我已有的代码合并?

【问题讨论】:

    标签: model-view-controller asp.net-mvc-5


    【解决方案1】:

    查询您的数据库以获取用户列表,然后将其转换为您的视图模型。确保您不要直接从数据库传递用户类,因为您会将密码、盐等发送到浏览器。您应该将其从 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);
    }
    

    查看:

     <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
    }
    

    【讨论】:

    • 嗨,在我的 Index() 方法中,我已经有一个现有的 actionresult 模型可以返回查看。如何将您在 Index() 方法中建议的代码与我已有的代码合并?请在问题帖子中查看我的更新 1
    • 这个问题的关键是确保你的视图模型中有一个用户列表,以及 DropDownListFor 的new SelectList 部分。我可以假设您的 Models.Application 包含用户列表吗?
    • 没有。我的 Models.Application 仅包含基本票证信息。我的问题是我不知道如何将用户列表添加到此模型中。
    猜你喜欢
    • 1970-01-01
    • 2017-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-02
    相关资源
    最近更新 更多