Было найдено несколько типов контроллеров, соответствующих URL Error MVC 5 - PullRequest
0 голосов
/ 08 октября 2019

Прежде чем задать вопрос, я должен сказать это;Все маршруты добавлены в контроллеры по атрибуту Route. Это не дубликат этого или этого . Поскольку параметр ID (целочисленный тип) в этом случае передается двум различным функциям.

Существует два класса и две функции, которые все разделены в разных классах. Функции HomeController.AppPage и BlogController.Detail конфликтуют при переходе по этой странице localhost:11111/Blog/this-is-blog-title/1. Я хочу запустить Второй, как я сказал ниже.

Во Втором сегмент Blog должен быть стабильным в начале маршрута. Я не хочу менять или удалять.

Спасибо за ваше предложение и помощь.

Первый

public class HomeController : BaseController
    [Route("{title}/{ID}")]              //  -> No problem with this
    [Route("{title1}/{title2}/{ID}")]    //  -> Conflicting attribute
    public ActionResult AppPage(int ID)
    {
        // Some Code
        return View();
    }
}

Второй

public class BlogController : BaseController
    [Route("Blog/{title}/{ID}")]              //  -> Conflicting attribute
    public ActionResult Detail(int ID)
    {
        // Some Code
        return View();
    }
}

1 Ответ

0 голосов
/ 20 октября 2019

попробуйте добавить параметр порядка в атрибут маршрута, чтобы маршрут в блоге имел приоритет над маршрутом title1

По умолчанию все определенные маршруты имеют значение порядка 0, а маршруты обрабатываются от самого низкого до самого высокого

public class HomeController : BaseController
    [Route("{title}/{ID}")]              //  -> No problem with this
    [Route("{title1}/{title2}/{ID}", Order = 2)]    
    public ActionResult AppPage(int ID)
    {
        // Some Code
        return View();
    }
}

public class BlogController : BaseController
    [Route("Blog/{title}/{ID}", Order = 1)]             
    public ActionResult Detail(int ID)
    {
        // Some Code
        return View();
    }
}

Если это не помогло, вы можете просто перечислить их в файле RouteConfig.cs и написать маршрут в блоге до маршрута title1

. Вы можете прочитать эту статью для получения дополнительной информации

http://rion.io/2015/11/13/understanding-routing-precedence-in-asp-net-mvc/

...