Получение имени контроллера дважды в URL с помощью ASP.NET MVC
Извините за вопрос noob, но, как вы можете видеть, имя контроллера дважды появляется в URL, и оно работает, только если оно дважды в URL: URL
Вот как выглядит мой контроллер: Действие контроллера
И вот мой взгляд:
Я знаю, что это не моя маршрутизация, потому что, если я создаю другое представление, маршрутизация работает нормально. Если я просто http://localhost:50903/users, то появится пустой экран. Я думаю, что он возвращает null из-за блока try-catch, но когда он вызывает функцию, это то, к чему он обращается в UserDao:
И это хранимая процедура, которую она вызывает:
Пожалуйста, помогите, я схожу с ума
0 ответов
Я обнаружил, что было не так. Мне пришлось изменить имя моего контроллера, чтобы он работал правильно. Мое приложение могло запутаться, потому что имя контроллера было таким же, как имя представления.
Вы создали область в своем приложении? Потому что, если вы создали область и поместили в нее папку User controller, вы можете получить имя контроллера дважды. И, как я вижу ваш URL, он показывает, что ваши первые пользователи Controller name пишутся строчными буквами, потому что обычно, когда мы создаем область, мы называем ее строчными буквами большую часть времени.
Имя контроллера пользователя в 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 только один раз.
Примечание. Это полезно, только если вы создали область в своем приложении. Если вы не создали область, то дайте мне знать, что мы найдем другое решение для этого.
Надеюсь, что это поможет вам.
Спасибо.