我正在使用SimpleMvcCaptcha。我的環境有不同的領域。我想在不同區域以不同形式使用此驗證碼。在MVC中從路由中刪除區域名稱
該模塊需要一個控制器,名稱爲驗證碼和一個方法。 如果我創建在同一地區該控制器是我使用它,那麼就沒有問題,但如果我在不同的環境下使用,我得到這個錯誤:
The controller for path '/AreaName/Captcha/GetImage/15fe4de1-fd46-4f2f-a0d1-74c397bd8365' could not be found.
我怎樣才能解決這個問題?我想我能解決這個問題的方法是去除航線登記,如
routes.MapRoute(
"Default_Captcha",
"AreaName/Captcha/{action}/{id}",
new { area = string.Empty, controller = "Captcha", action = "GetImage", id = UrlParameter.Optional });
的區域,但我仍然得到同樣的錯誤。
有沒有什麼辦法可以從鏈接中刪除區域名稱?
---更新
的驗證碼需要一個控制器,用於其操作(與用於獲取圖像驗證碼的一種方法的控制器)。
我想在MyArea中實現的表單中使用它。該表單涉及一個名爲MyController的控制器。
如果我在這個區域內創建了一個CaptchaController,其中包含所需的代碼,驗證碼效果很好(顯示Captcha圖像)。
現在假設我有另一個區域(MyArea2),並且在這個區域中,我有一個名爲MyController2的控制器,那麼我在這個區域也需要一個新的Captcha控制器,否則它不會顯示圖像。
我無法將CaptchaController移動到非區域代碼部分,因爲圖像未顯示。
的URL驗證碼圖像是(用於視圖相關myController的使用的驗證碼):
http://mySite/MyArea/Captcha/GetImage/xxxxxxxxxxxx
的URL驗證碼圖像是(用於視圖相關MyController2使用的驗證碼):
http://mySite/MyArea2/Captcha/GetImage/xxxxxxxxxxxx
如果我將驗證碼控制器移動到非區域部分,則上述url都不起作用,並且不顯示圖像。
如果我可以重新路由這些URL到以下網址,那麼他們應該工作(我可以在非區域劃一個驗證碼控制器):
http://mySite/Captcha/getImage/xxxxxxxxxxxxxxxxxxx
我怎樣才能做到這一點?
謝謝,請參閱我更新的區域。 – mans