在我的開始Reqeust方法在我的global.asax.cs中,我想檢查當前請求是否是MVC請求,而不是對.css文件或.js文件等的請求。如何遍歷所有控制器並確保URL是用於控制器的?
說我有以下控制器:
/User/
/Product/
/Store/
/Checkout/
我想遍歷控制器的名稱,並驗證當前請求的URL是針對上述控制器中的操作。
How can I look through the controller names?
在我的開始Reqeust方法在我的global.asax.cs中,我想檢查當前請求是否是MVC請求,而不是對.css文件或.js文件等的請求。如何遍歷所有控制器並確保URL是用於控制器的?
說我有以下控制器:
/User/
/Product/
/Store/
/Checkout/
我想遍歷控制器的名稱,並驗證當前請求的URL是針對上述控制器中的操作。
How can I look through the controller names?
您可以使用反射並從指定的命名空間獲取所有控制器。
using System.Reflection;
private Type[] GetControllersInNamespace(Assembly assembly, string controllernamespace)
{
return assembly.GetTypes().Where(types => string.Equals(types.Namespace, controllernamespace, StringComparison.Ordinal)).ToArray();
}
只是好奇你爲什麼要這麼做? – DarthVader 2013-05-07 18:32:04
你的用例是什麼?可能有更好的方法。 – Bobson 2013-05-07 18:36:18
@DarthVader我使用的是IIS,並且有一個通配符映射設置,所以所有的請求都通過MVC,甚至是css/images等等。所以我想對一個真正的MVC控制器請求做一些事情。 – loyalflow 2013-05-07 18:53:19