ASP.NET MVC dropdown-list from database

后端 未结 6 1460
梦如初夏
梦如初夏 2020-12-05 05:30

Ok, so I\'m new to this whole MVC-world, but it seems to be a pretty good way of getting things done and I\'m trying to make it work here.

The problem is: I can\'t g

6条回答
  •  日久生厌
    2020-12-05 06:15

    There a great answers already but Here is another approach.

    You will use user as a model, ListUserViewModel as view-model and UserController as the contoller. The work of view-model is to carry all info needed to be displayed on the page from the controller without adding unwanted properties into the model class. In your case list of users from database into the drop down list.

    Model:

    public class User     //By the way use singular when naming a class
    {
        public string name {get; set;}
        public int user_id {get; set;}
    }
    

    View-model

    public class ListUserViewModel
    {
        public list Users{get; set;}
    }
    

    Controller

    public class UserController : Controller
    {
        private DataBaseContext db = new DataBaseContext();
    
        [HttpGet]
        public ActionResult ListUser()
        {
            var users = db.Users.ToList();
    
            var viewModel = new ListUserViewModel { Users = users };
    
            return View(viewModel);
        }
    }
    

    Now use ListUserViewModel instead of User in your view as a model

    @model Community.Models.ListUserViewModel
    

    and the drop down

    @Html.DropDownListFor(m => m.Users, new SelectList(Model.Users, "user_id", "name"), " ")
    

    Explanation:

    You are creating drop down list for Users with Model.Users as select list data source. "user_id" as a value of the selected user and "name" as display label. the last argument( i put empty string " ") is a default value that the drop down will display before selection.

    I hope this will help you or someone else.

提交回复
热议问题