2009-08-20 61 views
1

我在Asp.Net Webform應用程序中使用System.Web.Routing。我寫了下面的路線在global.asax在Asp.Net Webform應用程序中使用路由

routes.RouteExistingFiles = true; // I made true/false both, but none works 

routes.Add("competition", new Route 
      (
       "Test", 
       new CustomRouteHandler("~/Test/WebForm1.aspx") 
      )); 

而且目錄結構如下: -

應用

|

| ---測試(文件夾)

|--- Webform1.aspx 

當我在瀏覽器http://localhost:xxxx/Test/寫(使用卡西尼),該請求是在傳統的方式來處理不通過的路線,而且,它給我是「目錄列表 - /測試/」頁面。

你能幫我一下嗎?

回答

1

我有同樣的問題,我選擇了應該處理的默認路徑文件名爲Default.aspx的

routes.Add("competition", new Route ("Test", new CustomRouteHandler("~/Test/Default.aspx"))); 
+0

事實上,或者按照建議使用Default.aspx,因爲它可能已經在defalt docuemtns列表中 – 2009-08-20 12:36:26

+0

@Pete:您提供的建議也適用於我。但是,現在問題是哪個http模塊正在執行這個請求,傳統的http模塊(asp.net one)還是路由http模塊(asp.net mvc)?因爲,a/c來回憶,我想它使用傳統的http模塊(asp.net one)。 – Zohaib 2009-08-23 04:48:20

0

使用路由直出的WebForms的盒子你,我剛纔已經實現了這個爲「的WebForms」具體而言,因爲有一些事情需要注意的:

http://haacked.com/archive/2008/03/11/using-routing-with-webforms.aspx

HTH

更新:

使用鏈接中的實現仍然會產生相同的錯誤,因爲實際的文件夾存在。

我會認爲,既然該文件夾存在,它會送達(在某些情況下,列出文件夾的內容可能需要)

也許採取了不同的做法是,例如更好的,如果頁面中的所有點特定的Extranet登錄頁面可能需要一個額外的描述性文件夾,例如:/ Extranets/Test /?

+0

是務實的解決辦法,我使用直開箱。所有其他路線工作正常,如 routes.Add(「competitionNew」,new Route(「NewTest」,new CustomRouteHandler(「〜/ Test/WebForm1.aspx」))); 但是,我真正擔心的是,如果請求是http:// localhost:xxx/Test /其中Test也是應用程序中的文件夾,那麼它將顯示「Directory Listing -/test /」頁面,而不是呈現webform1頁面。 – Zohaib 2009-08-20 11:42:27

+0

好的,在我的應用程序上測試(使用WebForm路由作爲每個鏈接實施)和ot似乎做同樣的事情,我已經更新了我的答案... – 2009-08-20 12:06:54

+0

...如果您將iis中的默認文檔設置爲WebForm1.aspx,它會提供該頁面,但在您的應用中可能不需要? – 2009-08-20 12:11:01

相關問題