我有两个ASP.NET MVC操作:
public ActionResult GetAll()
{
return GetOne(1);
}
public ActionResult GetOne(Int32 id)
{
return View(id);
}
public ActionResult GetAll()
{
return GetOne(1);
}
public ActionResult GetOne(Int32 id)
{
return View(id);
}
如您所见,GetAll正在调用GetOne操作。但是,当调用GetAll()(调用GetOne(id)并且应该返回GetOne视图)时,MVC会抛出一个错误,指出没有GetAll视图。咦?
如何让GetAll调用GetOne并使用GetOne的视图(我认为这是合乎逻辑的事情)?
答案 0 :(得分:6)
public ActionResult GetOne(Int32 id)
{
return View(id, "GetOne");
}
明确指定视图名称会覆盖默认值,即使用路由值集合中的操作键,在这种情况下等于“GetAll”。
答案 1 :(得分:1)
如果你的控制器是UsersController,你的行动是GetAll,它希望找到一个视图Views / Users / GetAll。
如果要返回与不同操作对应的视图,则需要指定(而不是使用默认值):
return View(id, "GetOne")