我正在使用:
return RedirectToAction("GetSchedule", new { requirements = preCheckParams.Requirements, weightValues = preCheckParams.WeightValues});
在我的aspnetcore应用中。接下来,我想在另一个操作中重复使用传递给匿名对象的值:
public IActionResult GetSchedule(List<string> requirements, Dictionary<string, int> weightValues)
奇怪的是,第一个值被绑定到GetSchedule操作中的List,而第二个对象(即字典)为空。在这种情况下,是否有关于词典的特殊规定?
答案 0 :(得分:1)
您不能在RedirectToAction的routeValues参数中传递类。
RedirectToAction方法的返回值是HTTP 302(Status302Found),它会向指定操作生成GET请求。这意味着您所有的参数都将作为查询字符串放在URL中。
列表/字符串数组requirements
可以在URL中传递,因为它绑定到查询字符串中的?requirements=value1&requirements=value2&..
等,但是比绑定值更复杂的东西,只能是原始值。
我首先想到了几种选择: