我正在使用mvc4
我的控制器中有一个方法。我希望这个方法将其用于另一个控制器中的另一个方法。我试过这个
public ActionResult Building(int buildingID) {
if((buildingID == 0) || (buildingID<0))
return HttpNotFound();
else
RedirectToRoute(new { controller = "Building", action = "details?id=" + buildingID });
}
但我得到了这个例外
not all paths have value
请问我做错了什么?
答案 0 :(得分:4)
您需要在else语句中返回:
return RedirectToRoute(new
{
controller = "Building",
action = "details",
id = buildingID
});
另请注意,我将id
作为匿名对象的一部分传递,而不是将其作为某个查询字符串参数硬编码到操作名称。
答案 1 :(得分:3)
您else
语句未返回ActionResult
此RedirectToRoute(new { controller = "Building", action = "details?id=" + buildingID });
不返回值。如果RedirectToRoute
返回ActionResult
,您只需在其前面添加return
关键字即可使用它。
答案 2 :(得分:2)
return RedirectToRoute(new { controller = "Building", action = "details?id=" + buildingID });
另外,我认为你可以使用,但我需要仔细检查
return RedirectToAction("details", "Building", new { id = buildingID });
此外,您可以更改此行(仅用于清理代码)...
if((buildingID == 0) || (buildingID<0))
要..
if(buildingID < 1)