Action方法中的routeValues不接受ExpandoObject?

Bro*_*ato 3 asp.net-mvc

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

dynamic routeValues = new ExpandoObject();

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

helper.Action("MyAction", "MyController", routeValues);
Run Code Online (Sandbox Code Playgroud)

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

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

Dar*_*rov 13

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

var routeValues = new RouteValueDictionary();

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

helper.Action("MyAction", "MyController", routeValues);
Run Code Online (Sandbox Code Playgroud)