2014-09-10 85 views
0

如何從我的視圖訪問我的視圖模型?我的代碼如下: - ,MVC Viewmodel無法訪問模型與視圖

我有兩個模型(使用實體框架),它有一個視圖模型 - :

 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>(); 
-

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

} 

我的位指示由填充模型

我返回由

 return PartialView("NewsStory", ViewModelStory); 

模型,然後在我看來,我有以下聲明

@model ViewModelStory 
@using GCBSMVC.Models 

要訪問我的模型我已經嘗試了各種從LINQ到和直接查詢模式,但似乎沒有任何工作: - Html.DisplayFor(M => m.GCB_NewsItem。 .... ViewModelStory.GCB_NewsItem.strItemCategory Html.Raw(System.Web.HttpUtility.HtmlDecode(ViewModelStory.GCB_NewsItem.strItemHeadline))

+0

你的控制器動作的返回值是什麼樣的?你是否填充視圖以正確返回,例如返回View(「myView」,myModel)? – hschne 2014-09-10 14:19:49

+0

我通過返回它:返回PartialView(「NewsStory」,ViewModelStory);我還會更新忘記添加這一點的問題。 – chris 2014-09-10 15:38:58

+0

我害怕,但你不能這樣設置ViewModelStory.GCB_NewsItem屬性。請製作一個對象,然後設置屬性。如果您的對象與課程名稱相同,請更改並嘗試。 – 2014-09-11 08:09:43

回答

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);