Представление не было найдено при использовании строкового идентификатора - PullRequest
0 голосов
/ 09 июля 2020

У меня есть этот метод в моем HomeController, он отлично работал при переходе на support/home/chat, но если я go на /support/home/chat?id=4, он выдаст ошибку:

InvalidOperationException: представление '4' не найдено

 [Area("Support")]
    public IActionResult Chat(string? ID)
    {
       

        return View(ID);
    }

, и это моя маршрутизация при запуске

  app.UseEndpoints(endpoints =>
            {
                endpoints.MapAreaControllerRoute(
                    name: "Support",
                    areaName: "Support",
                    pattern: "Support/{controller=Home}/{action=Index}/{id?}");

                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Home}/{action=Index}/{id?}");

            });

1 Ответ

1 голос
/ 09 июля 2020

Controller.View имеет много перегрузок (https://docs.microsoft.com/en-us/dotnet/api/system.web.mvc.controller.view?view=aspnet-mvc-5.2)

давайте сосредоточимся на

  • View (путь к строке)
  • View (объектная модель)

первый используется, когда вы хотите использовать представление с заданным путем и без модели, второй используется, когда вы хотите использовать представление по умолчанию с моделью. В вашем случае вы хотите использовать второй, но ваша модель имеет тип string, поэтому вы фактически используете первую.

все, что вам нужно сделать, это:

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