我正在.net 4.0 中使用 MVC。我有一个基本的 Html.ActionLink,我希望将多个参数传递给控制器/动作。
每次我调试 ActionResult 时,只有一个参数通过,另一个为空(取决于哪个是第一个)。现在我知道我可以传入复杂的对象,因为我可以让“联盟”对象通过。但是,我不确定为什么在任何时候只有一个参数可以通过。
Code in View:(不要因为 ViewBag 而骚扰我。我知道它不流行。另外,League 是一个复杂的对象)
@Html.ActionLink("Sort By WeeK", "Sort", "Schedule",
new { league = ViewBag.League, sortType = "Week" }, null)
控制器中的代码:(这里没有惊喜)
public ActionResult Sort(League league, string sortType)
{
//Do some stuff here
return View("Schedule");
}
我猜答案将围绕路由展开。这让我想到了第二个问题。如何在不不断添加新地图路由的情况下让这种类型的 ActionLink(动作/控制器/复杂和简单对象的集合)工作。是否有我可以添加的通用/通配符 RouteMap,这样我就不必不断地将解剖学上相同的路由图添加到 global.asax。或者,也许我希望传递给 Action 的对象类型具有一定的灵活性,因此我无法预定义确切的签名。
我看过很多关于这个主题的帖子,但没有一个回答我的问题。