2009-01-05 63 views
1

我正在編寫一個組件,我希望能夠在MVC和WebForms Web應用程序中使用,但我不確定如何處理HttpContext被處理。HttpContext併爲WebForms和MVC編寫組件

我的組件涉及自定義IHttpHandler(用於WebForms)或自定義ActionResult(用於MVC)。

所以我有幾個問題:

  • 是否有使用與MVC的IHttpHandler的不破壞模型的方法嗎?
  • 嘗試編寫適用於兩者的代碼時,是否可以使用HttpContext.Current?對我來說這似乎有點暴躁(不知道爲什麼),但替代方法是編寫和實現一個相當詳細的接口來處理HttpContext和ControllerContext之間的抽象。
  • 我是否完全錯誤?

回答

2
  1. 是的,你可以使用routes.IgnoreRoute("MyHandler.ashx")。它會回落到最初的ASP.NET處理而不會破壞模型。
  2. 不,我認爲使用HttpContext.Current完全可以。我想當你編寫你自己的處理程序時,MVC不是很適用。您正在編寫代碼ASP.NET,而不是ASP.NET MVC或ASP.NET Web窗體。在兩個模型上工作都很容易(在Web表單中使用OOTB,在MVC中使用IgnoreRoute)。你可能會讓事情比他們應該更復雜!請記住,設計模式(如MVC)的唯一目的是簡單。不要讓事情變得複雜!
  3. goto 2;只要寫一個簡單的處理程序!
+0

很好的答案,謝謝! :) – 2009-01-05 18:49:06