【问题标题】:Asp.Net MVC UserControlAsp.Net MVC 用户控件
【发布时间】:2010-11-28 14:25:17
【问题描述】:

我正在将应用程序从 WebForms 移植到 MVC。

我有一个在整个站点中使用的 WebForms UserControl,它包含展示和业务逻辑,特别是一些“初始化”逻辑(在 Page_Load 中)

我对MVC UerControls的理解是,它们没有专用的控制器,因此不包含逻辑,而逻辑是添加到添加了UserControl的viewpage的控制器中。

现在,我不想在我的 ViewPage 中编写初始化逻辑,因为这个 UserControl 出现在多个页面上,因此逻辑重复。

我认为我不能使用 MasterPage,因为 UserControl 可以垂直呈现在页面左侧,也可以水平呈现在页面顶部,具体取决于它是什么页面。这将需要 2 个 MasterPage,并再次重复逻辑。

我还有其他选择吗?

【问题讨论】:

    标签: asp.net-mvc user-controls


    【解决方案1】:

    这是使用 RenderAction html 助手的好例子。更好的是,抓住 Microsoft MVC 期货并使用 RenderAction 方法。基本上,它允许您在视图中调用控制器操作,这更像是 UserControls 的工作方式而不是 RenderPartial。

    【讨论】:

      【解决方案2】:

      Bleh,我想我应该正确地做,并通过控制器的 viewdata 传递一个对象,而不是 hacky-slash 它。

      【讨论】:

      • 通过正确执行此操作并创建一个对象来封装我的视图逻辑来解决此问题。现在干净多了。
      猜你喜欢
      • 2010-09-06
      • 2010-09-06
      • 1970-01-01
      • 2014-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多