我已經在我的應用程序中實現了表單提交頁面的驗證碼,根據代碼我從獲得了ASP.NET MVC框架本書。ASP.NET MVC - Captcha作爲獨立程序集
他在那裏提示「如果你想將它變成一個可重複使用的,可分發的CAPTCHA組件......你只需將CaptchaHelper和CaptchaImageController類放入獨立程序集。」
這是什麼意思?
我在想,我只是創建一個新的MVC項目,控制器文件夾中有這個單一的控制器,並在助手文件夾中的助手文件。它編譯得很好。
然後我將該項目包含到我的解決方案中,並在我的其他子項目(一個用於業務層,另一個用於UI)中添加了對此項目的引用。
但是當我嘗試渲染頁面時,視圖無法渲染驗證碼圖像。 (順便說一句,它工作得很好,然後我把它分解成一個單獨的項目。)
該視圖頁似乎無法找到驗證碼控制器。
我想我需要創建一個獨立的控制器幫助...
感謝, 斯科特
錯誤是:
Castle.MicroKernel.ComponentNotFoundException:支持無組件服務Captcha.CaptchaImageController被發現在Castle.MicroKernel.DefaultKernel.get_Item(Type service) at Castle.Windsor.WindsorContainer.Resolve(Type service) 在WebUI.WindsorControllerFactory.GetControllerInstance(類型controllerType)在
C:\ work_aspx \ PostHealthWellness \ WebUI中\ WindsorControllerFactory.cs:在System.Web.Mvc.DefaultControllerFactory.CreateController(的RequestContext的RequestContext,字符串controllerName) 在系統48行 。 Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase的HttpContext) 在System.Web.Mvc.MvcHandler.ProcessRequest(HttpContext的HttpContext的) 在System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext的HttpContext的) 在系統.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean & completedSynchronously)
是的,我這樣做了,但我也必須在Windsor註冊我的外部控制器。 – Scott 2010-02-02 20:10:50
使用信息我發現[這裏] [1],我編輯我的WindsorControllerFactory.cs文件添加: //在外部程序集中註冊控制器 container.Kernel.AddComponent(「ExternalResources」,typeof(Captcha.CaptchaImageController),LifestyleType 。短暫的); [1]:http://stackoverflow.com/questions/1163900/external-controllers-and-castle – Scott 2010-02-02 20:12:41
糟糕,在評論中沒有格式化.... – Scott 2010-02-02 20:12:57