Проблема, возвращая конкретный вид в ASP.NET MVC3
-
25-09-2019 - |
Вопрос
У меня есть структура файла просмотра, как:
Views
Company
Department
Employee
ManageEmployee.cshtml
и контроллер
public class EmployeeController : Controller
{
public ActionResult Index(int dptId)
{
var loadedEmp = getEmpOf(dptId);
return View("Company/Employee/ManageEmployee", loadedEmp);
}
}
Но контроллер дает мне ошибку - рассказывая, что он не может найти представление. Эти пути его поиска.
~/Views/Employee/Company/Employee/ManageEmployees.aspx
~/Views/Employee/Company/Employee/ManageEmployees.ascx
~/Views/Shared/Company/Employee/ManageEmployees.aspx
~/Views/Shared/Company/Employee/ManageEmployee.ascx
~/Views/Employee/Company/Employee/ManageEmployee.cshtml
~/Views/Employee/Company/Employee/ManageEmployee.vbhtml
~/Views/Shared/Company/Employee/ManageEmployee.cshtml
~/Views/Shared/Company/Employee/ManageEmployee.vbhtml
В основном, если я могу устранить Работник Раздел, двигатель найдет его.
~ / Просмотры /Работник/Company/employee/manageemployee.cshtml. к этому
~ / Просмотров / Компания / Сотрудник / ManagementMoyee.CSHTML
Любые идеи о том, как достичь этого.
Спасибо.
Решение
Вам необходимо следовать MVCS Convention ControlnameController для вашего контроллера, а также структуру контроллера / ...
Если вы хотите полный контроль над своей структурой, вам нужно переключиться на другую, как Fubumvc..
Другие советы
Ты пробовал:
return View("/Company/Employee/ManageEmployee", loadedEmp);
Похоже, двигатель пытается вернуть представление относительно вашего текущего местоположения на сайте, а не из корня сайта.
Вид должен быть возвращен из контроллера следующим образом (для определенного вида):
return View("ManageEmployee", loadedEmp);
В MVC контроллер автоматически будет направляться на предоставленное вами имя просмотра.
loadedEmp
Должен быть объект, который вы передаете по мнению.
Если вы хотите, чтобы ваша собственная конвенция о создании структур папок Views, было бы лучше подключить свой собственный двигатель View.