namespaceMvcAppAreasControllers
{
public class HomeController : Controller
{
public void Index()
{
ResponseWrite(stringFormat(UseNamespaceFallback: {}<br/>
RouteDataDataTokens[UseNamespaceFallback]))
ResponseWrite(stringFormat(Controller Type: {}<br/>
thisGetType()FullName))
}
}
}
現在我們在浏覽器中通過匹配的URL(/Admin/Home/Index)來訪問Area為Admin的HomeController的Index操作會得到如圖所示的HTTP狀態為Not Found的錯誤這就是因為在對Controller類型進行解析的時候是嚴格按照對應的AreaRegistration所在的命名空間來進行的很顯然在這個范圍內是不可能找得到對應的Controller類型的(S)
圖 Controller和AreaRegistration命名空間不匹配導致的錯誤
但是如果我們去掉AdminAreaRegistration的命名空間那麼將會導致路由變量UseNamespaceFallback的值變為True這會促使Controller激活系統選擇後備的命名空間由於整個Web應用中僅僅定義了唯一匹配的MvcAppAreasControllersHomeController很顯然這個Controller會被激活如圖所示的程序運行結果也說明了這一點(S)
圖 去掉AdminAreaRegistration命名空間以采用後備命名空間
返回目錄ASPNET MVC 框架揭秘
編輯推薦
ASP NET開發培訓視頻教程
Microsoft NET框架程序設計視頻教程
Java程序性能優化讓你的Java程序更快更穩定
Visual C++音頻/視頻技術開發與實戰
[] []
From:http://tw.wingwit.com/Article/program/net/201311/16089.html