MVC模型绑定和下拉列表

问题描述:

我有一个Person类显示在下面。在视图中,我需要显示其属性,以及存在于另一个表中的DepartmentName。 DepartmentId在下面的类中是一个外键。我正在使用Linq to SQL。我也在下面显示我的PersonRepository和Controller代码。我需要在“索引视图”页面中显示DepartmentName,并在“编辑视图”页面上显示下拉列表。我是MVC的新手,所以我不确定如何做到这一点。很感谢任何形式的帮助。MVC模型绑定和下拉列表

public class Person_Validation 
{ 
    [HiddenInput(DisplayValue = false)] 
    [ScaffoldColumn(false)] 
    public object PersonId { get; set; } 

    [HiddenInput(DisplayValue = false)] 
    [ScaffoldColumn(false)] 
    public object DepartmentId { get; set; } 

    [DisplayName("First Name")] 
    [Required(ErrorMessage = "First Name is required")] 
    [StringLength(50, ErrorMessage = "Frist Name cannot be more than 50 characters")] 
    public object FirstName { get; set; } 

    [DisplayName("Last Name")] 
    [Required(ErrorMessage = "Last Name is required")] 
    [StringLength(50, ErrorMessage = "Last Name cannot be more than 50 characters")] 
    public object LastName { get; set; } 

    [HiddenInput(DisplayValue = false)]   
    public object Active { get; set; } 

    [HiddenInput(DisplayValue = false)] 
    public object DateAdded { get; set; } 

    [HiddenInput(DisplayValue = false)] 
    public object DateDeleted { get; set; } 

    public IEnumerable<Department> departments { get; set; }    
} 

PersonRepository类

public IList<Person> GetAllPersons() 
{ 
    //get all active people 
    var activePeople = from p in db.Persons 
         where p.Active == true 
         select p; 

    return activePeople.ToList();    
} 

控制器代码:

public ActionResult Index(int? page) 
{ 
    const int pageSize = 25; 

    var persons = _repository.GetAllPersons();    
    var paginatedPersons = new PaginatedList<Person>(persons, page ?? 0, pageSize); 

    return View(paginatedPersons); 
} 

,我建议你在asp.net mvc的样品看从这里http://valueinjecter.codeplex.com,特别是在TinyController我认为是我想和大家分享的链接,在那里你可以使用MVC

http://www.c-sharpcorner.com/UploadFile/deveshomar/ways-to-bind-dropdown-list-in-Asp-Net-mvc/

这可能有助于你绑定的下拉列表各种方式做MVC

的最佳途径。