我可以拥有一个名为“View”的ActionResult吗?

时间:2011-05-05 20:23:31

标签: c# asp.net-mvc asp.net-mvc-2 asp.net-mvc-3

代码:

public ActionResult View(string id)
{ 
   return View();
}

当我这样做时,我目前得到了stackoverflow异常。

3 个答案:

答案 0 :(得分:14)

您应该收到编译器警告,您的View定义会掩盖基本控制器类的定义,并且您应该明确使用new关键字。如果您更改代码来执行此操作,则应该按照您的意愿运行:

return base.View();

答案 1 :(得分:6)

当然,不要递归地称呼自己:

public new ActionResult View()
{
    return base.View();
}

答案 2 :(得分:4)

通过描述性地命名您的观点通常是个好主意。名为View的视图未说明视图的作用或可能使用的数据。我强烈建议给它一个更好的名字。

那就是说,在这个例子中,你是递归地调用自己,所以将return语句改为

return base.View();