방금 MVC3을 배우기 시작했습니다. 기존의 ASP.NET에서 코딩 해왔다. 잠시 동안 MVC로 옮기고 싶습니다.MVC3 면도기 뷰 엔진
(아마 기존의 ASP.NET에서 다르게 한 후 사용) 내가 이해하지 못하는 어떤 것들은
내가 뉴스를 표시하고 그들을 위해 메모를 삽입 할 수있는 간단한 뉴스 모듈을 작성하려고 해요 .
그래서 첫 번째 단계는 내가 내 SQL 서버의 테이블을 생성한다 : TblNews TblCategories TblComments
만든 Linq2SQL 데이터 모델 폴더에 클래스과 News.dbml 만든 컨트롤러 HomeController.cs 및 방법이라는 그 안에 Index()라고 불린다. 이 같은 봐 :
public ActionResult Index()
{
Models.NewsDataContext db = new Models.NewsDataContext();
var Model = (from n in db.TblNews
select new
{
ID = n.ID,
Title = n.Title,
Description = n.Description,
Category = n.TblCategory.CategoryName
});
return View(Model);
}
당신은 내가 데이터를 반환하고있어 내가 모든 뉴스와 그 범주 이름 (TblNews 및 TblCategories이 그들 사이의 관계를 가지고 할) 그 후
을 선택하기 위해 노력하고있어시피 내가 그 질문에서 얻은 것. 보기에서
는 내가 가지고 테이블에서 내 샘플 데이터의ID: 4
Title: asd
Description: asd
Category: 2
: 뭔가를 반환해야합니다
@{
ViewBag.Title = "News Index Page";
}
<table>
@foreach (var item in Model)
{
<tr>
<td>
ID: @item.ID<br />
Title: @item.Title<br />
Description: @item.Description<br />
Category: @item.Category
</td>
</tr>
}
</table>
.
내가 페이지를 실행하면 그것은 나에게 오류 메시지를 제공합니다
'object' does not contain a definition for 'ID'
을하지만 난 "항목"내 마우스를 집중할 때 변수는 실제로 포함되어
{ ID = 4, Title = asd, Description = asd, Category = Test2 }
가 나는 또한 Linq에를 반환하는 시도 .ToList()를 끝에 추가하여 목록으로 쿼리하십시오.
아무도 내게 어떤 힌트를 주거나 올바른 방향으로 나를 데려 갈 수 있습니까?
내가 잘못 설명하면 죄송합니다. 영어가 제 기본 언어가 아닙니다. 자세한 정보가 필요한지 물어보십시오.
대단히 감사합니다.
P. Visual Studio 2012를 사용 중입니다.
@ user2110925 아 당신은 당신의 LINQ 문에 TblNews' 클래스'의로 선택해야합니다 'select new TblNews' (또는 그 클래스가 호출되는 클래스)로 변경 한 다음 모델을 List (또는 클래스가 호출되는 클래스)으로 변경하십시오 –
mattytommo
클래스에 대해이 부분을 이해하지 못합니다. 에 해당. o_O 어떻게 알 수 있습니까? 내 테이블 이름은 TblNews이지만 그 클래스에 대해서는 실제로 이해하지 못합니다. 전통적인 ASP.NET에서 나는 테이블 형식을 사용할 필요가 없었습니다. 단지 드롭 다운 목록이나 그와 비슷한 것을 채울 때만 사용해야했습니다. 이제는 정말로 혼란 스럽네요. : –
@ user2110925 당신의 클래스는'TblNews'라고 생각합니다. 기본적으로'NewsDataContext'에는'DbSet '이있을 것입니다. 'TblNews' 클래스. 이것은 MVC에만 국한되지 않으며 엔티티 프레임 워크, linq to sql, nhibernate 등과 같은 ORM을 사용하는 경우에만 사용됩니다. –
mattytommo