Получение имени контроллера дважды в URL с помощью ASP.NET MVC

Получение имени контроллера дважды в URL с помощью ASP.NET MVC

Извините за нубский вопрос, но, как вы видите, имя контроллера встречается в URL дважды, и это работает только в том случае, если оно встречается в URL дважды: URL

Вот как выглядит мой контроллер: Действие контроллера

И вот мое мнение:

Вид

Я знаю, что это не моя маршрутизация, потому что если я создаю другой вид, маршрутизация работает нормально. Если я просто ввожуhttp://localhost:50903/usersзатем появляется пустой экран. Я думаю, что он возвращает null из-за блока try-catch, но когда он вызывает функцию, вот что он переходит в UserDao:

Пользователь.Дао

А это хранимая процедура, которую он вызывает:

Хранимая процедура

Помогите пожалуйста, я схожу с ума.

решение1

Вы создали область в вашем приложении?. Потому что если вы создали область и поместили в нее папку User controller, то вы можете получить имя контроллера дважды. И как я вижу ваш URL, он показывает, что ваше первое имя контроллерапользователинаписано строчными буквами, потому что, как правило, когда мы создаем область, мы в большинстве случаев называем ее строчными буквами.

Имя контроллера пользователя встречается в URL-адресе дважды, поскольку оно включает в себя имя области в URL-адресе, как показано ниже:

routes.MapRoute(
      name: "user_route",
      template: "{area:required}/{controller:required}/{action}/{id?}",
      defaults: new { area = "users", controller = "Users" 
      });

удалить область из маршрута.

routes.MapRoute(
      name: "user_route",
      template: "{controller:required}/{action}/{id?}",
      defaults: new { controller = "Users", action = "Index" 
      });

Таким образом, имя вашего контроллера будет отображаться в URL-адресе только один раз.

Примечание: Это полезно только если вы создали область в своем приложении. Если вы не создали область, то дайте мне знать, мы найдем другое решение.

Надеюсь, это вам поможет.
Спасибо.

решение2

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

Связанный контент