我希望能够选择将哪些属性添加到对象中,然后再在操作方法帮助器中使用它。因此,我使用ExpandoObject实现了这一目标。

dynamic routeValues = new ExpandoObject();

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

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

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

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

最佳答案

您不需要任何动力学或ExpandoObjects,一个简单的RouteValueDictionary就可以完成工作:

var routeValues = new RouteValueDictionary();

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

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

07-26 05:33