2009-02-02 51 views
0

我在互聯網上四處瀏覽,試圖回答這個問題。雖然這似乎有點複雜!似乎想出各種不同的主題,如HtmlHelper和其他的東西。在MVC中處理ASP.Net自定義控件

基本上。你如何使用MVC的自定義控件?避免做任何令人不悅的事情。

另外,這是真的,與MVC你必須把一些簡單的邏輯在頁面上?這不是我們應該逃避的嗎?

更新:所以,似乎你不能使用取決於MVC廢除的任何東西的控件,例如回發事件和視圖狀態。你可以自己製作嗎?當然只有渲染的控件。

+0

爲什麼如果他們與你有關聯,你不會+1答案? – aleemb 2009-02-02 17:15:51

回答

3

你可以使用ASP.NET控件嗎?也許。如果控件不使用ViewState或回發事件,它可能會工作。例如,LoginView控件工作得很好。 Telerik支持ASP.NET MVC的一些控件。另一方面,如果控件需要ViewState或回發,那麼它就不會起作用。使用數據綁定的控件並不理想,因爲您通常必須使用身後的代碼。但是如果你在代碼後面添加代碼,他們將會工作。

另一方面,沒有ASP.NET知識的控件(例如jQuery UI控件)工作得很好。

不,你不必把你的邏輯放在頁面中。你只是不要把它放在頁面後面的代碼中。相反,use helper methods

1

關於第二個問題,頁面正是視圖邏輯應該去的地方。任何其他的邏輯應該在你的控制器或模型中。

我不確定自定義控件的含義。您可以讓通過partials渲染的ViewUserControls重用視圖代碼。如果您正在討論爲webforms構建的第三方控件,那麼它們很可能無法工作 - 至少一段時間。但是,如果您絕對必須擁有它們,則可以在同一個站點中將MVC與傳統網絡表單混合使用。