2010-11-13 105 views
1

我有一個使用單個master.page的網站。在master.page中,我有一個名爲「ControlPanel」的強類型用戶控件(.ascx)。它的類型是ControlPanelViewModel。將強類型控件嵌套到母版頁中ASP.NET

這裏是母校頁面 - MasterFrame.master:

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %> 

<body> 
    <% Html.RenderPartial("ControlPanel"); %> <!-- Here I need to pass the ControlPanelViewModel --> 

    <!-- main content area --> 
</body> 
</html> 

這裏是自定義控制頁面 - ControlPanel.ascx:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ControlPanelViewModel>" %> 
<!-- Some content which are using the ControlPanelViewModel --> 

現在的問題是如何正確ControlPanelViewModel發送到母版頁的自定義控件?什麼是最好的方法?這種情況是否有某種良好的做法或設計模式?

回答

1

Svick感謝您的回答,但你的做法是非常綁定視圖模型。我想這是大多數ASP.NET用戶使用的,因爲我在一些文章中閱讀了它。不幸的是,這對我的網站來說不夠好,因爲我有太多現有的代碼和視圖模型。在我看來,更好的方法是使用調用控制器方法的Html.RenderAction方法。

0

如果你有模型對象,有an overload of Html.RenderPartial()你可以給它:

Html.RenderPartial("ControlPanel", model); 
+0

我知道:),所以你說最好的方法是使用強類型母版頁? – devfreak 2010-11-13 18:18:43

+0

是的,可能使用[此方法](http://stackoverflow.com/questions/710499/asp-net-mvc-passing-strongly-typed-data-to-master-page/710774#710774)。 – svick 2010-11-13 18:26:38

+0

我喜歡它,但不想將所有視圖模型綁定到母版頁模型視圖(從中繼承)。我可以在沒有繼承部分的情況下使用這種方法嗎? – devfreak 2010-11-13 18:35:19

相關問題