2009-09-15 254 views
0

我正在将应用程序从WebForms移植到MVC。Asp.Net MVC用户控件

我有一个Web窗体用户控件,用于整个网站,其中包含表象和业务逻辑,特别是一些“initizliation”逻辑(在Page_Load)

我的MVC UerControls的理解是,他们没有专用控制器,因此不包含逻辑,并且逻辑被添加到添加了UserControl的ViewPage的控制器中。

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

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

我还有其他的选择吗?

回答

0

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

+0

解决了这个问题,方法是正确地创建一个对象来封装我的视图逻辑。现在更清洁。 – 2009-09-16 18:33:43

1

这是使用RenderAction html helper的好例子。好得多,抓住微软MVC期货并使用RenderAction方法。基本上它可以让你在一个视图内调用一个控制器动作,这更像是UserControls的工作方式,而不是RenderPartial。