2010-08-14 112 views
2

我有一個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); 
} 

回答

0

的最佳途徑。