您将如何在 ASP.NET MVC 视图中支持外部可组合部件?
我这是什么意思?想想“每个页面上的登录框”或“iGoogle”。这是需要在每个控制器/视图外部的某些地方的东西。
一种方法是在视图中添加组件,如下所示:
<% foreach (var component in GetComponents()) {%>
<%= Html.RenderPartial(component.ViewName, component.ViewData)%>
<%} %>
在上面的示例中,我正在寻找一种让每个组件的控制器而不是显示它们的视图的控制器传递视图名称和视图数据的好方法。您可以建议的任何完全不同的解决方案也会很有趣。过滤器、WebForms 等
更新:我将尝试用一个例子来解释我想要理解的内容。我将选择登录功能。
在典型的 webforms 应用程序中,这可能是一个用户控件,它在页面生命周期的加载事件中检索适当的数据并更新一些 UI 控件。单击页面后,页面将回发,我们可以对同一用户控件中单击事件中发布的信息采取行动。
根据我目前对 ASP.NET MVC 样式的理解,首先接受请求的控制器将检索适当的数据并将其传递给视图,该视图又将其传递给登录部分视图。登录视图将定义一个表单,其发布操作针对登录控制器的登录操作。发布的信息由登录操作使用,我们可以选择使用一些漂亮的方案将请求传递给原始控制器。
我假设有一种比上面更聪明的方法,不需要我将控制器逻辑放在视图/母版页中。