Как выкинуть пользовательские ошибки на некоторых маршрутах в c # - PullRequest
0 голосов
/ 08 июня 2018

Я получаю пользовательскую ошибку, если я делаю что-то вроде

https://localhost:xxxx/TryStuff  

, но если я делаю что-то вроде

https://localhost:xxxx/AbcController/Details/1234/TryStuff

, это не вызывает пользовательскую ошибку.Выдает что-то вроде

enter image description here

Файл маршрута:

routes.MapRoute(
    "Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);


routes.MapRoute(
    name: "Error",
    url: "{controller}/{action}/{id}",
    defaults: new
    {
        controller = "Error",
        action = "NotFound",
        id = UrlParameter.Optional
    });

1 Ответ

0 голосов
/ 08 июня 2018

Вам нужен перехват всех маршрутов

//Catch-All InValid (NotFound) Routes
routes.MapRoute(
    name: "NotFound",
    url: "{*url}",
    defaults: new { controller = "Error", action = "NotFound" }
);

Добавьте этот маршрут после всех других маршрутов.

Любые маршруты, которые не были перехвачены ранее, будут соответствовать этому и направляться к соответствующему контроллеру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...