我有一个视图文件结构,如:
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
基本上,如果我能够消除员工部分,引擎会找到它。
〜/ Views / 员工 /Company/Employee/ManageEmployee.cshtml 到此
〜/查看/公司/雇员/ ManageEmployee.cshtml
有关如何实现这一目标的任何见解。
感谢。
答案 0 :(得分:7)
你试过了吗?
return View("/Company/Employee/ManageEmployee", loadedEmp);
看起来引擎正在尝试相对于站点中的当前位置返回视图,而不是从站点的根目录返回。
答案 1 :(得分:2)
必须以下列方式从控制器返回视图(对于特定视图):
return View("ManageEmployee", loadedEmp);
在MVC中,控制器将自动路由到您提供的视图名称。
loadedEmp
应该是您传递给视图的对象。
答案 2 :(得分:1)
您需要遵循控制器的ControllerNameController的MVC约定以及ControllerName /...的视图结构。
如果您想完全控制您的结构,则需要切换到FubuMVC之类的其他框架。
答案 3 :(得分:1)
如果您想要自己安排视图文件夹结构的约定,那么插入自己的视图引擎会更好。