2008-10-23 42 views
0

在我的主網頁(稱爲index.aspx)我叫ViewData.Model在局部是空

<%Html.RenderPartial("_PowerSearch", ViewData.Model);%> 

這裏viewdata.model != null 當我到達我的部分:

<%=ViewData.Model%> 

viewdata.model == null

什麼給??

回答

1

你有沒有試過只傳入ViewData而不是ViewData.Model?這是一個刪節的版本我在我的助手使用(從店面系列無恥被盜):

/// <summary> 
    /// Renders a LoggingWeb user control. 
    /// </summary> 
    /// <param name="helper">Helper to extend.</param> 
    /// <param name="control">Type of control.</param> 
    /// <param name="data">ViewData to pass in.</param> 
    public static void RenderLoggingControl(this System.Web.Mvc.HtmlHelper helper, LoggingControls control, object data) 
    { 
     string controlName = string.Format("{0}.ascx", control); 
     string controlPath = string.Format("~/Controls/{0}", controlName); 
     string absControlPath = VirtualPathUtility.ToAbsolute(controlPath); 
     if (data == null) 
     { 
      helper.RenderPartial(absControlPath, helper.ViewContext.ViewData); 
     } 
     else 
     { 
      helper.RenderPartial(absControlPath, data, helper.ViewContext.ViewData); 
     } 
    } 

注意,我通過在當前ViewData的,而不是模型。

+0

謝謝,這沒有辦法。 我轉換到beta1版本的另一個細微舉動。 – 2008-10-23 11:29:51

0

這是未經測試:

<%=Html.RenderPartial("_ColorList.ascx", new ViewDataDictionary(ViewData.Model.Colors));%> 

你控制視圖期待視圖數據具體到它在這種情況下。如果你的控制想要一個名爲顏色的模型上的屬性,那麼也許:

<%=Html.RenderPartial("_ColorList.ascx", new ViewDataDictionary(new { Colors = ViewData.Model.Colors }));%>