2011-11-28 2 views
0

테이블을 채우기 위해 시도 mvc.I 테이블을 채우는 시도하고이 오류가 나타납니다오류 내가 asp.net에서 초심자 해요

foreach 문을 'K_Api.Notification가'

'GetEnumerator를'내가 컨트롤러를 가지고 있고 여기에 내가 하나 개의 매개 변수와 함께 내 시야를 호출하기위한 공공의 정의가 포함되어 있지 않기 때문에 문 유형 'K_Api.Notification'의 변수를 조작 할 수 없습니다. 이 매개 변수는 내 눈금에서 찾을 데이터가있는 목록입니다 (3 열 : from, subject, status; 내 목록에 3 행).

내 목록에 대한 정의입니다 :

List<Notification> sNotificationList=new List<Notification>(); //Notification is a class with the 3 columns and their types 

이 내보기로 호출입니다 :

notificationList.aspx 첫 번째 행에서
return View("NotificationsList", sNotificationList); 

은 다음과 같습니다

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Child.Master" Inherits="System.Web.Mvc.ViewPage<K_Api.Notification>" %> 

그렇다면 :

 <%   
     foreach (K_Api.Notification s in Model) 
     { 
     %> 
    <tr> 
     <td> <%= Model.From %></td> 
     <td> <%= Model.Status %></td> 
     <td> <%= Model.Subject%></td> 
    </tr> 
     <%   
    }%> 

누군가가 오류가 어디 있는지 말해 줄 수 있습니까?

+0

을 추가하십시오 :

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Child.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<K_Api.Notification>>" %> 

이 분명히 당신의 컨트롤러 액션이보기에 IEnumerable<Notification>를 전달하는 것을 예로 설명 : 그래서 당신이 컨트롤러 액션에서 전달하는 형식을 준수 할 수 있도록보기를 수정 K_Api.Notification의 정의. 모델을 K_Api.Notification 유형으로 정의합니다 (<%Page %> 문 끝 부분을보십시오). 따라서 Model을 반복하고 모든 항목이 K_Api.Notification 인스턴스가 될 것으로 기대할 수는 없습니다. 또는? – llasarov

+0

그'<% = Model.From %>'등은 아마'<%= s.From %>'이어야합니다. 그렇지 않으면 모델 객체를 통해 열거하는 이유가 보이지 않기 때문입니다 ... –

답변

0

뷰의 모델 정의가 잘못되었습니다. 루프를 반복 할 수 있으려면 모델이 IEnumerable<K_Api.Notification>이어야합니다.

public ActionResult NotificationsList() 
{ 
    IEnumerable<Notification> model = new List<Notification>(); 
    return View(model); 
} 
+0

답장을 보내 주셔서 감사합니다. 변경된 후 대린이 나에게하는 말은 괜찮 았어. 그리고 로버트는 옳았지 만, 나는 여러 번 변했고 나는 많은 것을 시도했고 나는 모델 대신 모델을 잊어 버렸다. 고마워요! – Cr123