代码:
public ActionResult View(string id)
{
return View();
}
当我这样做时,我目前得到了stackoverflow异常。
答案 0 :(得分:14)
您应该收到编译器警告,您的View
定义会掩盖基本控制器类的定义,并且您应该明确使用new
关键字。如果您更改代码来执行此操作,则应该按照您的意愿运行:
return base.View();
答案 1 :(得分:6)
当然,不要递归地称呼自己:
public new ActionResult View()
{
return base.View();
}
答案 2 :(得分:4)
通过描述性地命名您的观点通常是个好主意。名为View
的视图未说明视图的作用或可能使用的数据。我强烈建议给它一个更好的名字。
那就是说,在这个例子中,你是递归地调用自己,所以将return语句改为
return base.View();