Как определить маршрут приложения в основном приложении asp.net? - PullRequest
0 голосов
/ 24 марта 2019

У меня есть следующий код в моем файле startup.cs:

app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "catalog",
                template: "Catalog/{controller}/{action=Index}/{id?}");

            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");
        });

Когда я нажимаю на мою ссылку:

 <a asp-controller="Products" asp-action="Index">Products</a>

Приложение использует маршрут с именем «каталог», но янужен маршрут с именем «по умолчанию».Как это сделать?Помогите, пожалуйста.Извините за мой плохой английский =)

Ответы [ 2 ]

0 голосов
/ 25 марта 2019

Для того, чтобы default вступил в силу, вы можете изменить порядок как

app.UseMvc(routes =>
{
    routes.MapRoute(
        name: "default",
        template: "{controller=Home}/{action=Index}/{id?}");
    routes.MapRoute(
        name: "catalog",
        template: "Catalog/{controller}/{action=Index}/{id?}");
});
0 голосов
/ 24 марта 2019

Я бы предложил немного изменить ваше промежуточное ПО маршрутизации:

Вам необходимо использовать метод MapAreaRoute, который сообщит имя области и формат URL.

app.UseMvc(routes =>
{
    routes.MapAreaRoute("catalog_route_name", "Catalog",
        "Catalog/{controller}/{action}/{id?}");

    routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");
});

Затем вам нужно указатьАтрибут области на ваших контроллерах.

namespace MyApp.Namespace1
{
    [Area("Catalog")]
    public class ProductsController : Controller
    {
        public IActionResult AddProduct()
        {
            return View();
        }        
    }
}

Как только это изменение будет выполнено, вы можете указать область, как показано ниже:

    <a asp-area="Catalog" asp-controller="Products" asp-action="Index">
        Catalog/Products/Index
    </a>

Это, безусловно, должно работать.

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