2010-12-10 4 views
0

저는 mvc.에 멍청한 사람입니다. linq2sql에서 mvc를 사용하는 저장소 패턴을 사용하고 있습니다. 모든 것을 명확하게 파악하기 위해 일부 테스트를 수행하고 있습니다. 작성자 테이블에서 작성자를 출력하려고합니다. 컨트롤러보기 부분foreach를 사용하여 IQueryable을 나열하고 반복 처리합니다.

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> 
<div class="item"> 
    <% foreach (var k in Model) 
     { %> 
     <%: k.Author_Name %> 
     <%: k.Author_email %> 
     <%: k.Author_phonenumber %> 
     <%: k.Author_Website %> 
    <% }%>   
</div> 

public class AuthorsController : Controller 
{ 
    private IAuthorRepository _authorRepo; 

    public AuthorsController() 
    { 
     string connectionString = ""; 
     _authorRepo = new AuthorsRepository(connectionString); 
    } 

    public ViewResult List() 
    {    
     return View(_authorRepo.Authors.ToList()); 
    } 

내가 컴파일러 예외를

"foreach 문을 데 그것을 실행하려고에

public class AuthorsRepository : IAuthorRepository 
{ 
    private Table<BK_Author> _authorsTable; 

    public IQueryable<BK_Author> Authors 
    { 

     get { return _authorsTable.AsQueryable<BK_Author>(); } 

    } 

상태 'BK_Author가' 'GetEnumerator를' "

+3

'foreach (var k in Model)'가 잘못된 것 같습니다. 'foreach (Model.Authors에서 var k) '를 의미 했습니까? – Gabe

답변

1

페이지의 모델은 어떻게 든 BK_Author의 대상으로 설정하지 AuthorsRepository의됩니다에 대한 공공의 정의가 포함되어 있지 않기 때문에 엔트 유형 'BK_Author을'의 변수에 작동 할 수 없습니다. AuthorsRepository으로 설정하고 Authors 속성을 사용하여 작성자의 목록에 액세스하십시오. 보기 페이지에서

+0

감사 문제가 해결되었습니다. – Jonaz

0

, 당신은 단순히 이런 일을 상속 수 :

Authors author = (Authors)k; 

희망이 :

Inherits="System.Web.Mvc.ViewPage<IEnumerable<Authors>>" 

또는 foreach는 (모델에 var에 K)는 같은 저자에 케이 구분해야 후

도움!!

관련 문제