2012-02-17 110 views
1

我創建了一個沒有明確模型定義的C#Razor網站,依靠dynamic關鍵字來表示我的模型。然而,現在這是因爲它說「對象不包含成員X」而破壞了。它確實包含它; intellisense展示了這一點,但無論使用什麼模型,何時動態,都在打破。即使添加@model dynamic也不起作用。剃刀動態模型打破

更改爲顯式模型正在工作,所以我正在這樣做,但是會導致動態支持停止在進程中工作?

編輯:

我控制器簡單地做到這一點:

public ActionResult List() 
{ 
    return View(new 
    { 
    Data = repos.GetData() 
    }); 
} 

,並直接使用它:

@{ Title = "X" } 

@foreach (var item in Model.Data) 
{ 
    Render 
} 

的模型和數據不爲空,且有有效數據。

謝謝。

+0

請發表您的操作方法,並查看代碼。 – 2012-02-17 01:34:45

+0

完成,查看上面的帖子。 – 2012-02-17 01:52:22

回答

1

如果要使用要傳遞的動態類型,應該使用ViewBag屬性。您的代碼能讀:

public ActionResult List() 
{ 
    ViewBag.Data = repos.GetData(); 

    return View(); 
} 

您的看法:

@foreach (var item in ViewBag.Data) 
{ 
    Render 
} 

我試圖讓你的代碼工作,但我也拋出了同樣的錯誤。

+0

好吧,這很奇怪,因爲它直到今天一直工作幾周,沒有問題。 – 2012-02-17 02:21:02

+0

@BrianMains那麼今天你的代碼中有什麼改變了嗎? *某物*必須改變。 – 2012-02-17 02:22:21

0

試試這個:

型號:

public ActionResult List() 
{ 
    dynamic returnModel = new ExpandoObject(); 
    returnModel.Data = repos.GetData(); 
    return View(returnModel); 
} 

查看:

@{ 
    ViewBag.Title = "title"; 
} 

@foreach (var item in Model.Data) 
{ 
    // html for item 
}