在我的开始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