1
我已經實現了自定義的VirtualPathProvider來爲數據庫提供可定製視圖,並且當我在FileExists方法上放置一個斷點時,我注意到該框架對許多不必要的(對於我的項目)請求。例如,當我爲不存在的動作的請求(例如http://localhost/Example/Action)的框架查找:可以重新配置MVC路由解析機制嗎?
- 「〜/實施例/動作/ 5」
- 「〜/實施例/動作/ 5.cshtml」
- 「〜/實施例/動作/ 5.vbhtml」
- 「〜/實施例/ Action.cshtml」
- 「〜/實施例/ Action.vbhtml」
- 「〜/ Example.cshtml」
- 「〜/ Example.vbhtml」
- 「〜/實施例/動作/ 5/default.cshtml」
- 「〜/實施例/動作/ 5/default.vbhtml」
- 「〜/實施例/動作/ 5/index.cshtml」
- 「〜/實施例/動作/ 5/index.vbhtml」
- 「〜/ favicon.ico的」
- 「〜/ favicon.ico.cshtml」
- 「〜/ favicon.ico.vbhtml」
- 「〜/ favicon.ico/default.cshtml」
- 「〜/ favicon.ico/default.vbhtml」
- 「〜/的favicon.ico/index.cshtml」
- 「〜/的favicon.ico/index.vbhtml」
當我作出這樣的匹配的添加的路由的請求(例如http://localhost/Test)的框架尋找:
- 「〜/測試」
- 「〜/ Test.cshtml」
- 「〜/ Test.vbhtml」
- 「〜/測試/ DEF ault.cshtml」
- 「〜/測試/ default.vbhtml」
- 「〜/測試/ index.cshtml」
- 「〜/測試/ index.vbhtml」
即使在初始化之前控制器。控制器初始化後,框架會查找我已經實現的自定義RazorViewEngine中定義的視圖。
這是我的ViewEngine
AreaViewLocationFormats = new string[] { };
AreaMasterLocationFormats = new string[] { };
AreaPartialViewLocationFormats = new string[] { };
MasterLocationFormats = new string[] { };
ViewLocationFormats = new string[] {
"~/Views/Dynamic/{1}/{0}.cshtml",
"~/Views/Dynamic/Shared/{0}.cshtml",
"~/Views/{1}/{0}.cshtml",
"~/Views/Shared/{0}.cshtml"
};
PartialViewLocationFormats = new string[] {
"~/Views/Dynamic/{1}/Partial/{0}.cshtml",
"~/Views/Dynamic/Shared/Partial/{0}.cshtml",
"~/Views/{1}/Partial/{0}.cshtml",
"~/Views/Shared/Partial/{0}.cshtml"
};
FileExtensions = new string[] { "cshtml" };
所以,問題是可以將這些默認路由被刪除,怎麼樣?