2009-09-15 262 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。