Представление не загружается после переименования контроллера

#asp.net #asp.net-mvc-5

#asp.net #asp.net-mvc-5

Вопрос:

Я сменил свой контроллер с homecontroller на ProfileController . Теперь мое представление ничего не показывает, но когда я изменил его обратно с Profilecontroller на homecontroller , оно снова работает нормально.

Я также изменил:

  @using(Html.BeginForm("index", "homeController", FormMethod.Post, new { enctype = "multipart/form-data" }))
  

Для:

 @using(Html.BeginForm("index", "ProfileController", FormMethod.Post, new { enctype = "multipart/form-data" }))
  

Ответ №1:

Если вы явно не укажете представление в действии контроллера, то MVC использует соглашение для поиска представления /Views/<ControllerName>/<ActionName>.cshtml :

 /Views/Profile/Index.cshtml
  

В вашем случае вам также придется переименовать папку Home в Profile .

Дополнительная информация из документации:
https://learn.microsoft.com/en-us/aspnet/mvc/overview/getting-started/introduction/adding-a-controller
https://learn.microsoft.com/en-us/aspnet/mvc/overview/getting-started/introduction/adding-a-view

Комментарии:

1. Спасибо, чтобы помочь мне в этом случае, дорогой, я не менял имя папки, я изменил только имя контроллера в объектах Controller Online_ShoppingEntities = new Online_ShoppingEntities(); entities. Компании. Добавить(новую КОМПАНИЮ { Image = fileName, path = filePath }); объекты. SaveChanges(); //Перенаправить на действие индексирования. верните RedirectToAction(«index»); чтобы я изменил

2. @AbdulJabbar Да. В этом проблема. Где находится ваш Index.cshtml? Я думаю, в /Views/Home/Index.cshtml => так что, если вы переименуете Home в Profile , MVC сможет снова найти ваше представление.

3. В просмотр папки / Главная/

4. @AbdulJabbar Вы должны переименовать папку. Новая структура должна быть View/Profile/Index.cshtml .

5. Нет, дорогой, я не переименовывал папку