在我的控制器中,我定义了:
const string KList = "list.cshtml";
我调用Action方法:
public ActionResult All()
{
var view = Empty();
var model = new Model(); // some other code to get the model
view = PartialView(KList, model);
return view;
}
这是视图:
我收到了这个错误:
System.Web.HttpException:'执行处理程序的子请求时出错 'System.Web.Mvc.HttpHandlerUtil + ServerExecuteHttpHandlerAsyncWrapper''。
InnerException: InvalidOperationException:找不到局部视图'list.cshtml'或者没有视图引擎支持搜索 位置。搜索了以下位置:
〜/查看/通信/ list.cshtml.aspx
〜/查看/通信/ list.cshtml.ascx
〜/查看/共享/ list.cshtml.aspx
〜/查看/共享/ list.cshtml.ascx
为什么将aspx和ascx附加到视图文件中?
答案 0 :(得分:1)
视图引擎会将您传递给View()
的参数带到控制器的文件夹中,查看具有相同名称的文件,并附带支持的扩展名,例如:
因此,您不需要显式传递View()
重载的扩展名,该扩展名将视图名称作为第一个参数。只需改变:
const string KList = "list.cshtml";
到
const string KList = "list";
我建议阅读this article解释两种视图引擎(Razor和ASPX)之间的差异。