C# 将强类型控件嵌套到母版页ASP.NET中

C# 将强类型控件嵌套到母版页ASP.NET中,c#,asp.net,asp.net-mvc,asp.net-mvc-2,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 2,我有一个使用单个master.page的站点。在master.page中,我有一个名为“ControlPanel”的强类型用户控件(.ascx)。其类型为ControlPanelViewModel 这是主页面-MasterFrame.master: <%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %> <body> <% Html.RenderPartial("Contro

我有一个使用单个master.page的站点。在master.page中,我有一个名为“ControlPanel”的强类型用户控件(.ascx)。其类型为ControlPanelViewModel

这是主页面-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发送到母版页的自定义控件?最好的方法是什么?这个案例是否有一些好的实践或设计模式

如果您有模型对象,您可以将其提供给:

Html.RenderPartial("ControlPanel", model);

如果您有模型对象,则可以将其提供给:

Html.RenderPartial("ControlPanel", model);

Svick感谢您的回答,但您的方法基本上是绑定视图模型。我想这是大多数ASP.NET的人所使用的,因为我在几篇文章中读到过。不幸的是,这对我的网站来说还不够好,因为我有太多的现有代码和视图模型。在我看来,更好的方法是使用Html.RenderAction方法,它调用您的控制器方法

Svick感谢您的回答,但您的方法基本上是绑定视图模型。我想这是大多数ASP.NET的人所使用的,因为我在几篇文章中读到过。不幸的是,这对我的网站来说还不够好,因为我有太多的现有代码和视图模型。在我看来,更好的方法是使用Html.RenderAction方法,它调用您的控制器方法

我知道:),所以你是说最好的方法是使用强类型母版页?是的,可能使用。我喜欢它,但不想将我的所有视图模型绑定到母版页模型视图(从中继承)。我可以在没有继承部分的情况下使用此方法吗?我知道:),所以你是说最好的方法是使用强类型母版页?是的,可能使用。我喜欢它,但不想将所有视图模型绑定到母版页模型视图(从中继承)。我可以在没有继承部分的情况下使用此方法吗?