我正在使用ASP.Net MVC 3框架,並將依賴注入集成到應用程序中。我正在嘗試創建一個自定義控制器工廠。我目前遇到的最大問題是我的IControllerFactory的實現.CreateController獲取傳遞的請求,例如css,javascript和其他內容文件,這些內容文件隨後導致它作爲「Scripts/html5.js」的類型拋出異常不存在。代碼是繼承給我的,所以請保存你對這個偶然狀態的批評。下面是執行:DefaultControllerFactory如何處理內容請求
public virtual IController CreateController(RequestContext requestContext, string controllerName)
{
if (requestContext == null)
{
throw new ArgumentNullException("requestContext");
}
if (String.IsNullOrEmpty(controllerName))
{
throw new ArgumentException("Value cannot be null or empty", "controllerName");
}
this.RequestContext = requestContext;
try
{
return container.Resolve<IController>(controllerName.ToLower());
}
catch (Exception ex)
{
Trace.TraceError(ex.Message);
return innerFactory.CreateController(requestContext, controllerName);
}
}
ASP .NET MVC控制器不處理對靜態文件的請求。這應該通過路由完成,它將它交給IIS。我會先看看那裏。 – Yuck 2012-02-03 18:49:22
請求**不存在**的靜態項**傳遞給MVC控制器工廠。默認工廠忽略它們,但是當你覆蓋它時,你也必須忽略它們。 – 2012-07-20 00:08:00
您的頁面鏈接到缺少的資源不是實際的問題嗎?這會一直髮生,因爲漫遊器和垃圾郵件發送者會嘗試訪問您網站上的各種文件。我認爲在這種情況下的答案是不記錄錯誤?下面的解決方案,雖然更清潔並不能解決這個問題,但我們期望您已將缺少的控制器的行爲更改爲404,但這可能是正確的,但可能與原始代碼一樣容易。\ – 2012-07-20 00:11:34