2010-08-14 6 views
2

Person 클래스가 아래에 표시되어 있습니다. 보기에서 나는 그 속성과 다른 테이블에 존재하는 DepartmentName을 표시해야합니다. 아래 클래스의 DepartmentId는 외래 ​​키입니다. Linq를 SQL에 사용하고 있습니다. 아래 PersonRepository 및 Controller 코드도 표시합니다. Index View 페이지에 DepartmentName을 표시하고 Edit View 페이지에 드롭 다운 목록을 표시해야합니다. 나는 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

을하는 가장 좋은 방법입니다.