2011-02-24 13 views
3

내가지고있어 오류 메시지는 다음과 같습니다 사전에 전달MVC 이상한 오류를 준다

모델 항목이 'System.Data.Linq.DataQuery`1 [MvcApplication1.ContentPageNav]'타입이다, 이 사전에는 'MvcApplication1.ContentPageNav'유형의 모델 항목이 필요합니다.

public ActionResult Edit() 
{ 
    DataClasses1DataContext dc = new DataClasses1DataContext(); 
    var model = from m in dc.ContentPageNavs 
     select m; 
    return View(model); 
} 

나는이 오류가 발생하는 이유가 뭘까요? 어떤 도움을 주시면 감사하겠습니다.

답변

2

이 (당신이 ContentPageNav 항목을 기다릴보기 때문에 코드가 작동하지 않습니다하지만 당신은 ContentPageNav의 목록 전송) 시도 :

public ActionResult Edit() 
{ 
    using(DataClasses1DataContext dc = new DataClasses1DataContext()) 
    { 
    // here you can select some specific item from the ContentPageNavs list 
    // Following query take first item from the list 
    var model = dc.ContentPageNavs.FirstOrDefault(); 
    return View(model); 
    } 
} 
6

model 변수에 ContentPageNav을 선택합니다.

보기에는 ContentPageNav이 필요하며보기는 기대하지 않습니다.

이 시도 : 오류 유형이 일치하지 않는 나타냅니다

var model = (from m in dc.ContentPageNavs 
    select m).FirstOrDefault(); 
+0

이제 linq에 where 조건을 넣었지만 여전히 같은 오류가 발생합니다. 쿼리는 하나의 행만 반환합니다. –

+1

@sly_Chandan - 한 항목의 목록이 한 항목과 다릅니다. – Oded

2

으로. 보기에는 단일 항목이 필요하지만 항목 모음을 전달하고 있습니다. 이 모델을 모델로 전달해보십시오. (from m in dc.ContentPageNavs select m).FirstOrDefault();

4

LINQ 표현식이 아닌 ContentPageNav가 하나 예상됩니다. 시도

return View(model.FirstOrDefault()); 

또는

var model = dc.ContentPageNavs.FirstOrDefault(); 
2

가 되세요을 보기를 보면 강하게 입력됩니다. 그것은 당신이 목록을해야하는 경우이 의도하지 않은 경우 당신이 ... 당신의 LINQ는하지만 잘못 될 수도

Inherits="System.Web.Mvc<IList<ContentPageNav>>" 

또는 목록의 어떤 종류를 사용하는 것이 좋습니다 뭔가

Inherits="System.Web.Mvc<ContentPageNav>" 

같은 말을한다.

관련 문제