2015-08-20 4 views
0

Я новичок в MVC и Entity Framework и хотел бы помочь в передаче данных модели, чтобы я мог сделать свой вид строго типизированным видом и получить информацию как Мне нужно.ASP.Net MVC Pass EF Data to Model

В о действии в домашнем контроллера я хочу, чтобы вытащить данные из моего SiteContent таблицы, является для О Page

 var sc = db.siteContents.Where(x => x.Page == "About").ToList(); 
     return View(sc); 

Пара вопросов у меня есть вокруг этого, во-первых, как я получить это в моей модели SiteContent

public class SiteContent 
{ 
    public int ContentId { get; set; } 
    public string ContentType { get; set; } 
    public string Page { get; set; } 
    public string ContentHeader { get; set; } 
    public string Content { get; set; } 
    public DateTime OriginalPostDate { get; set; } 
    public DateTime UpdatePostDate { get; set; } 
    public string ImageFileName { get; set; } 
    public bool ContentReleased { get; set; } 
} 

Я не уверен, как я должен исходить отсюда.

Отсюда я хотел бы использовать строго типизированный вид для получения данных с помощью моей модели.

Любая помощь очень ценится.

Благодаря

Simon

+0

Вы желая коллекцию 'SiteContent' (который является то, что вы в настоящее время) одного объекта' SiteContent' ? –

+0

Является ли 'SiteContent' моделью, используемой в вашем' DbContext', или это POCO? Кроме того, вы вытягиваете список ('.ToList'); Вы хотели захватить 'SingleOrDefault()'? –

+0

Таким образом, вы можете легко сделать это, используя 'IEnumerable ' в качестве модели для вашего вида. –

ответ

1

Определите ваш взгляд, как это:

@model IEnumerable<SiteContent> 
<table> 
    <tr> 
     <td>ContentType</td> 
     // other data 
    </tr> 
    @foreach(var item in Model) 
    { 
     <tr> 
      <td>@item.ContentType</td> 
      // other data 
     <tr> 
    } 
</table> 
+0

, используя этот пример, я возвращаю эту ошибку «Элемент модели, переданный в словарь, имеет тип« System.Collections.Generic.List'1 [InspireFitnessForAll.WebSite.DataModel.siteContent] », но для этого словаря требуется модель элемент типа 'System.Collections.Generic.IEnumerable'1 [InspireFitnessForAll.WebSite.Models.SiteContent]'. " –

+1

Проверьте пространство имен для SiteContent. Кажется, что вы получаете доступ к 'SiteContent' в своей папке' DataModel', а не 'Models' –

+0

ive просто переименовали модель в PageContent и получили ту же проблему. –