У меня проблема с моей маршрутизацией. Я пытаюсь предотвратить ошибки 404 в конечном итоге в моем настраиваемом методе маршрутизации.ASP MVC маршрутизации 404 и проблема с изображениями
Это некоторые из моих маршрутов:
routes.IgnoreRoute("Content/{*pathInfo}");
routes.IgnoreRoute("{*allfiles}", new { allfiles = @".*\.(css|js|gif|jpg|png)" });
routes.MapRoute(
name: "MenuRoute",
url: "{*permalink}",
defaults: new { controller = "Menu", action = "Index" },
constraints: new { permalink = new MenuUrlConstraint() }
);
Моя проблема заключается в том, что каждый раз 404 появляется для статических файлов, они идут к моему MenuRoute.
Есть ли способ избежать этого?
Или это единственное решение, которое можно проверить на 404 в моем маршрутном ограничении и ничего не делать, если так?
----- EDIT ----
public class MenuUrlConstraint : IRouteConstraint
{
public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
{
var db = new ApplicationDbContext();
var permalink = values[parameterName] != null ? values[parameterName].ToString() : "";
return db.MenuItems.Any(p => p.Url == permalink && p.Published == true);
}
}
Привет, Ограничение вернет false, когда его уже 404. Тем не менее, отслеживание маршрута проверяет БД для пули и т. Д. Мне не нужно, если 404 на изображениях и т. Д., Очевидно:> Как вы сказали, я мог бы сделать то, что вы предлагаете в моем ограничении. Я думал, что, возможно, этого можно избежать, если общие маршруты, где настройка отличается или что-то еще? Ill опубликуйте мой метод поиска в EDIT по оригинальному вопросу. – jan