Действие без параметров, отвечающее на запрос с параметром - PullRequest
0 голосов
/ 03 мая 2018

У меня есть обычный простой Index ActionResult без каких-либо параметров в его подписи внутри Home контроллера в моем приложении.

public ActionResult Index()
{
    ...
    return View();
}

Когда я набираю ... / Home / Index / example в качестве URL, этот контроллер отвечает на запрос.

Полагаю, это как-то связано с моей конфигурацией маршрута.

Это мой маршрут-конфиг

public static class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.LowercaseUrls = true;
        routes.MapRoute("Default", "{controller}/{action}/{id}", new
        {
            controller = "Home",
            action = "Index",
            id = UrlParameter.Optional
        }).RouteHandler = new DashRouteHandler();

        routes.MapHttpRoute(
            name: "Exception",
            routeTemplate: "{*url}",
            defaults: new { controller = "ErrorHandling", action = "Exception" }
        );
    }
}

Я не знаю, как это предотвратить. Просто я не хочу, чтобы на такие звонки отвечали, вместо этого я хочу, чтобы они были направлены на страницу 404.

1 Ответ

0 голосов
/ 03 мая 2018

Создайте параметр string id и измените ваш метод индекса:

public ActionResult Index(string id)
{
    if(id != null)
    {
        return StatusCode(404);
    }
    ...
    return View();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...