来自数据库的ASP MVC访问下拉列表

时间:2016-09-30 10:56:13

标签: asp.net-mvc model-view-controller drop-down-menu ado.net

我正在创建一个SchoolManagement应用程序,我必须在其中创建一个StudentRegistration表单。在表单页面上,我必须显示也来自数据库的Dropdownlist。我是asp mvc的新手,在asp.net中很容易,但在MVC中,我不知道如何做到这一点。我正在使用Ado.net和Razor视图引擎。请有人指导需要哪些步骤。 这是我的模特课

 public class StudentModel
{
    [Required(ErrorMessage="Student ID is required", AllowEmptyStrings=false)]
    public int StudentID { get; set; }
    [Required(ErrorMessage = "Student Roll No is required", AllowEmptyStrings = false)]
    public int RollNo { get; set; }
    [Required(ErrorMessage = "Student Name is required", AllowEmptyStrings = false)]
    public string StudentName { get; set; }
    [Required(ErrorMessage = "Student Address is required", AllowEmptyStrings = false)]
    public string Address { get; set; }
    [Required(ErrorMessage = "Student Cell is required", AllowEmptyStrings = false)]
    public string Cell { get; set; }


}

1 个答案:

答案 0 :(得分:0)

您需要创建操作方法,它将填充您的下拉列表。您需要设置SelectedListItem列表。 所以,解释你使用实体框架。

你的方法将是这样的。

public ActionResult Register()
{
    var model = new RegistrationViewModel()
    {
       StudentsList = this.context.Students.Select(s => new SelectListItem
         {
             Text = s.Name,
            Value = s.Id.ToString()
         },
    // some other property to the model
    }

    return View(model);
}

在视图中:

//SelectedStudent - string property in your model, where will be stored Value from list

@Html.DropDownListFor(model => model.SelectedStudent, Model.StudentsList)

在POST方法中

[HttpPost]
public ActionResult Register(RegistrationViewModel model) 
{
    var studentId = int.Parse(model.SelectedStudent);
}