Action方法中的routeValues不接受ExpandoObject?

时间:2011-09-18 12:59:11

标签: asp.net-mvc

我希望能够在我的action方法助手中使用它之前选择将哪些属性添加到我的对象中。所以我使用ExpandoObject来实现这一目标。

dynamic routeValues = new ExpandoObject();

if (...) { routeValues.FirstParam = "one"; }
if (...) { routeValues.SecondParam = "two"; }

helper.Action("MyAction", "MyController", routeValues);

它已成功编译,但在运行时,routeValues对象似乎被忽略。

有关动态选择对象属性的任何解决方案吗?

1 个答案:

答案 0 :(得分:12)

你不需要任何动态或ExpandoObjects,一个简单的RouteValueDictionary就可以完成这项工作:

var routeValues = new RouteValueDictionary();

if (...) { routeValues["FirstParam"] = "one"; }
if (...) { routeValues["SecondParam"] = "two"; }

helper.Action("MyAction", "MyController", routeValues);