2013-08-20 95 views
1

我已經創建了幾個自定義服務器控件,它們不是用戶控件,因此沒有要使用的「ascx」文件。我得到一個MVC項目來模仿我使用服務器控件編寫的相同類型的功能。基本上服務器控件是一個複合控件,所以它有幾個文本框,標籤,複選框,並且它有一些javascript。它還將該功能綁定到一些Web服務。將自定義服務器控件添加到MVC

我想知道是否有可能將此控件插入MVC頁面,或者如果我應該從頭開始重新構建這個功能,純粹使用HTML助手。我在後面想。

我是一個初學者,當談到自定義html助手。我可以像編程服務器端控件一樣對待編程自定義html助手嗎?

順便說一句,我需要添加這個例子中的URL顯示什麼我談論: http://msdn.microsoft.com/en-us/library/aa719734(v=vs.71).aspx

每當我提到的服務器端控件,人們都假設原生的ASP.NET控件,或用戶控件,而我談論定製服務器端控制。

幾個月前我就採用了自定義服務器控制方法,因爲它使部署變得非常簡單並且易於添加到其他.net項目中。由於它將所有內容都包裝在一個dll中,所有你需要做的就是回收這個池。但似乎MVC說,「不,你不會這樣做的」。

任何有關如何解決此問題的建議,提示或鏈接都將有所幫助。

順便說一句,如果它很容易在網上找到,我不會在這裏發佈。我發現的大多數例子都只談到用戶控件或本地asp服務器控件,而沒有涉及自定義服務器控件。我只是不想再一次做這個功能,並經歷了這個頭痛。

回答

0

你不能在MVC中使用你的ascx或dll自定義控件。 大多數情況下,因爲ASP.net控件的生命週期不同。 在MVC中 - 控件只是呈現HTML,它們不會收到任何回發,它們不會保存控件狀態或視圖狀態。即使「頁面」對象在MVC中也不存在。

MVC控件可以接受參數並呈現HTML。

+0

其實你可以在mvc中使用局部渲染渲染ascx。如果我有一個CustomControl1.ascx,我可以使用「@ Html.Partial(」CustomControl1「)」或「@ {Html.RenderPartial(」CustomControl1「);}」我希望我能做的某種方向在此刻。只是不使用現有的功能,並重新從頭開始重寫這一點很痛苦。 – sksallaj

+0

嗯,是的。你可能會渲染它們。但是你不能訪問ascx代碼隱藏類的方法或屬性。 ascx控件的功能基於這樣一個事實,即公佈的數據和ascx類是使用該數據初始化的。但在MVC中,數據發佈到控制器。你必須處理模型聯編程序。我不認爲如何在MVC中重用ascx有任何方向。 – user2626270

相關問題