构建具有可变数量成员的对象?

时间:2008-12-18 15:43:30

标签: asp.net-mvc asp.net-mvc-routing anonymous-types

在我的asp.net mvc页面中,我想调用RedirectToAction(actionName,controllerName,values)。

values参数是一个包含所有nessecary值的对象。 实施例

return RedirectToAction(redirectAction, redirectController,
          new{ personId = foundId,
               personEmail = foundEmail,
               personHeigh = foundHeight});

如果这些参数都不为null或为空字符串,那就没关系。 发生这种情况时,System.Uri.EscapeDataString(String stringToEscape)抛出ArgumentNullException。
问题是我在编译时不知道哪些参数将为null。另外,我宁愿不为每个可能的notnull值组合制作一个对象 在我的例子中,只有三个参数,但如果有10个?可能的组合呈指数增长。 由于无法向anon类型添加字段,因此我无法逐个添加参数。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您可以强制使用非空值...

return RedirectToAction(redirectAction, redirectController,
      new{ personId = foundId,
           personEmail =foundEmail ?? string.Empty,
           personHeigh = foundHeight ?? string.Empty});