我希望能够选择将哪些属性添加到对象中,然后再在操作方法帮助器中使用它。因此,我使用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);