我不知道你是否能在一個單一的行指定所有的人。另一種方法是您可以創建自定義路由約束,並完全忽略這些文件夾/ 文件。
UPDATE:
基於從@Brent檢查pathinfo
比比較folder
更好的反饋。
public class IgnoreConstraint : IRouteConstraint
{
private readonly string[] _ignoreList;
public IgnoreConstraint(params string[] ignoreList)
{
_ignoreList = ignoreList;
}
public bool Match(System.Web.HttpContextBase httpContext, Route route, string parameterName,
RouteValueDictionary values, RouteDirection routeDirection)
{
return _ignoreList.Contains(Path.GetExtension(values["pathinfo"].ToString()));
}
}
的Global.asax.cs
routes.IgnoreRoute("{*pathInfo}", new { c =
new IgnoreConstraint(".js", ".css") });
routes.RouteExistingFiles = true;
============================= ================================================== =
上一頁代碼
public class IgnoreConstraint: IRouteConstraint
{
private readonly string[] _ignoreArray;
public IgnoreConstraint(params string[] ignoreArray)
{
_ignoreArray = ignoreArray;
}
public bool Match(System.Web.HttpContextBase httpContext, Route route, string parameterName,
RouteValueDictionary values, RouteDirection routeDirection)
{
var folder = values["folder"].ToString().ToLower();
return _ignoreArray.Contains(folder);
}
}
在Global.asax.cs中
routes.IgnoreRoute("{folder}/{*pathInfo}", new { c =
new IgnoreConstraint("content", "script") });
routes.RouteExistingFiles = true;
通過「定製約束」的級別的,已經做出努力的時候,那麼我可能會更好過只用一個詳細列出IgnoreRoute語句,假設它不是一個很長的列表。不過,如果我測試了{* pathInfo}中的文件擴展名,而不是{文件夾}段中的文件夾,那麼我會試圖使用您的解決方案。這樣我就不會在乎我的.js,.css或.html文件在哪裏找到了。建議自定義約束的榮譽。 –
我同意你檢查pathinfo比文件夾好很多。當我嘗試時,我很懶惰。那麼,我更新答案,以便對某人有所幫助。感謝您指出:) – VJAI
我喜歡更新。優秀! –