Если у вас есть маршрут Fish/Image
перед маршрутом по умолчанию, проблема, с которой вы будете сталкиваться при создании ссылок MVC, заключается в том, что маршрут Fish / Image, по-видимому, удовлетворяет ВСЕ запросы. Чтобы этот маршрут работал, измените его следующим образом:
routes.Add(
"FishImage",
new Route(
"{controller}/Image",
new RouteValueDictionary(new { controller = "Fish" }),
new RouteValueDictionary(new { controller = @"^(?!fish).+" }),
null,
new ImageHandlerRouteHandler()
)
);
Это меняет маршрут, так что на стороне построения ссылок другие ссылки не пройдут этот маршрут. В настоящее время MVC видит, что он может создать любую ссылку, соответствующую этому маршруту, что и делает. При ограниченном маршруте MVC теперь увидит, что другие ссылки не пройдут этот маршрут.