我希望能够在我的action方法助手中使用它之前选择将哪些属性添加到我的对象中。所以我使用ExpandoObject来实现这一目标。
dynamic routeValues = new ExpandoObject();
if (...) { routeValues.FirstParam = "one"; }
if (...) { routeValues.SecondParam = "two"; }
helper.Action("MyAction", "MyController", routeValues);
它已成功编译,但在运行时,routeValues对象似乎被忽略。
有关动态选择对象属性的任何解决方案吗?
答案 0 :(得分:12)
你不需要任何动态或ExpandoObjects,一个简单的RouteValueDictionary就可以完成这项工作:
var routeValues = new RouteValueDictionary();
if (...) { routeValues["FirstParam"] = "one"; }
if (...) { routeValues["SecondParam"] = "two"; }
helper.Action("MyAction", "MyController", routeValues);