[英]Nesting strongly typed control into master page ASP.NET
我有一个使用单个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发送到母版页的自定义控件? 最好的方法是什么? 这种情况是否存在某种良好的做法或设计模式?
谢谢您的回答,但是您的方法几乎是绑定视图模型。 我猜这是大多数ASP.NET家伙使用的,因为我在几篇文章中都读过它。 不幸的是,这对于我的网站来说还不够好,因为我现有的代码和视图模型太多了。 我认为更好的方法是使用Html.RenderAction方法,该方法调用您的控制器方法。
如果有模型对象,则可以将Html.RenderPartial()
重载为:
Html.RenderPartial("ControlPanel", model);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.