如何将数据从控制器传递到asp.net mvc中的强类型用户控件?

时间:2009-02-11 12:17:11

标签: asp.net-mvc user-controls master-pages

我有一个强类型的用户控件,它应该在所有页面上显示用户的订单,它包含在母版页中。我有一个OrdersController,可以给我当前的订单,并在其他地方使用。

如何告诉母版页中的UserControl它应该从特定的控制器/控制器操作获取其数据?我想像在普通视图中一样访问ascx中的viewdata。

2 个答案:

答案 0 :(得分:1)

将模型和ViewData作为参数传递给RenderPartial方法。 它将使模型和视图数据可访问,就像您在父视图页面中一样。

<% Html.RenderPartial ( "../Shared/HRMasterData/DependentPersonDossiers",
  ViewData.Model, ViewData ); %>

答案 1 :(得分:0)

实现此目的的一种方法是实现基本控制器。将获取订单的逻辑移动到基本控制器。覆盖基本控制器中的OnActionExecuted并检查结果是否为ViewResult。如果是,请查找订单并将其添加到ViewData。在您的主数据库中,检查视图数据中是否存在订单,如果是,则进行渲染。如果没有,则显示“订单数据不可用”消息(后者不应该发生,但最好是安全的)。重复(调用)OrdersController中基本控制器中的代码,以获取呈现订单视图的操作。