2014-09-10 2 views
0

Как я могу получить доступ к моей модели просмотра с моего вида? мой код выглядит следующим образом: -,MVC Viewmodel can not access model with View

У меня есть две модели (с использованием структуры сущностей), которые имеют вид модели: -

public class ViewModelStory 
{ 
    public IEnumerable<tbl_GCB_NewsItem> GCB_NewsItem { get; set; } 
    public IEnumerable<tbl_GCB_ItemComment> comemnts { get; set; } 

} 

Мой Контроллер илит заселяет модели путем: -

 ViewModelStory.GCB_NewsItem = (from i in db.tbl_GCB_NewsItem 
        where i.intItemIdentifier.ToString() == StoryId 
        select i).SingleOrDefault(); 

     ViewModelStory.comemnts = (from i in db.tbl_GCB_ItemComment 
             where i.intItemIdentifier.ToString() == StoryId 
             select i).ToList<tbl_GCB_ItemComment>(); 

я возвращаю модель по

 return PartialView("NewsStory", ViewModelStory); 

то на мой взгляд, я следующую декларацию

@model ViewModelStory 
@using GCBSMVC.Models 

Чтобы получить доступ к моей модели я попробовал различные из Linq к и непосредственно запрашивая модель, но ничего не похоже на работу: - Html.DisplayFor (м => m.GCB_NewsItem. .... ViewModelStory.GCB_NewsItem.strItemCategory Html.Raw (System.Web.HttpUtility.HtmlDecode (ViewModelStory.GCB_NewsItem.strItemHeadline))

+0

Как выглядит обратное значение действия вашего контроллера? Вы заполняете представление для правильного возврата, например, return View («myView», myModel)? – hschne

+0

Я возвращаю его: return PartialView («NewsStory», ViewModelStory); я также должен обновить вопрос, забыл добавить этот бит. – chris

+0

Я боюсь, но вы не можете установить свойства ViewModelStory.GCB_NewsItem таким образом. Создайте объект и задайте свойства. если ваш объект имеет то же имя, что и класс, пожалуйста, измените его и попробуйте. –

ответ

1

Вы передаете тип вас модели класса вместо фактического класса. Попробуйте следующее:

var model = new ViewModelStory(); 
model.GCB_NewsItem = (from i in db.tbl_GCB_NewsItem 
        where i.intItemIdentifier.ToString() == StoryId 
        select i).SingleOrDefault(); 

model.comemnts = (from i in db.tbl_GCB_ItemComment 
             where i.intItemIdentifier.ToString() == StoryId 
             select i).ToList<tbl_GCB_ItemComment>(); 

return PartialView("NewsStory", model);