2011-05-18 42 views
2

有人可以糾正我對這裏發生的事情的理解嗎?有人可以糾正我對ViewDataDictionary如何工作的理解嗎?

假設如下:

<% foreach (var company in Model.Companies) { %> 

    <% Html.RenderPartial("FundList", Model, new ViewDataDictionary(company)); %> 

<% } %> 

我的印象是,這將使局部視圖稱爲FundList.ascx,同時傳遞一個Model對象(其中包含的東西負載),也是company對象,其中包含特定於公司的數據。

但是,當我檢查可用於我的數據FundList時,我只能看到對原始Model對象的引用。我在任何地方都看不到company。這應該在ViewData

如何在FundData部分獲得company對象?

回答

2

你嘗試......

<% Html.RenderPartial(
      "FundList", 
      Model, 
      new ViewDataDictionary { { "company", company } }); %> 
1

您應該分從ViewPage<Company>類型繼承,那麼你就可以通過當前公司直接作爲視圖模型。 託管頁面的ViewDataDictionary會自動轉移到部分。

<% Html.RenderPartial("FundList", company); %> 
1

如何將foreach移到你的局部視圖中去掉這個viewdata的需要?看起來像對我來說最乾淨的解決方案。

如果不是,你確定你確實需要「模型」?公司不是應該成爲你的榜樣,而其他的東西不應該是局部的看法?

否則,去一個包含所有需要的屬性的視圖模型。

相關問題