Маршрутизация контроллера ASP.NET Core 3.0 не работает - PullRequest
0 голосов
/ 02 апреля 2019

Отказ от ответственности: Я новичок в ASP.NET Core / Razor / MVC и начинаю предварительный просмотр версии 3.0.

То, что я хочу сделать, это иметь «кнопку» на моей странице, которая добавляет новый пустой элемент в список, чтобы пользователь мог ввести некоторые значения. Из того, что я прочитал (и это немного), звучит так, будто наличие гиперссылки на контроллер является правильным подходом к этому. Я не могу заставить его работать, хотя. Вот мой код:

Ссылка, указывающая на контроллер / действие:

<a class="btn btn-success" asp-controller="Customer" asp-action="AddProduct">New Product</a>

Контроллер:

    public class CustomerController : Controller
{
    public void AddProduct()
    {

        var tmp = "";

    }

    public string Index()
    {
        return "This is my default action...";
    }

    public string Welcome()
    {
        return "This is the Welcome action method...";
    }

}

Маршрутизация Startup.cs по умолчанию:

        app.UseRouting(routes =>
        {
            routes.MapRazorPages();
        });

При такой настройке, если я нажимаю кнопку пуска, я вижу изменение URL-адреса ниже, но больше ничего не происходит (например, точка останова не достигнута):

https://localhost:44358/Customers/Create?action=AddProduct&controller=Customer

Я попытался добавить маршрут к определенному коду UseRouting, например:

            app.UseRouting(routes =>
        {
            routes.MapRazorPages();
            routes.MapControllerRoute(
                name: "Customer",
                template: "{controller=Customer}/{action=Welcome}");
        });

Но когда я это делаю, кажется, что он ломается, так как цвет текста меняется (с белого на черный), и ничего не происходит, когда я нажимаю на него.

Есть идеи, где я иду не так?

У меня есть еще один вопрос - как вы получаете доступ к данным модели из контроллера?

Заранее спасибо!

1 Ответ

0 голосов
/ 13 июля 2019

См. Середину страницы здесь: https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-core-3-0-preview-4/

В Startup.cs Настройка:

        app.UseRouting();
        app.UseEndpoints(routes =>
        {
            routes.MapRazorPages();
            routes.MapFallbackToPage("/Home");
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...