0

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

values 参数是一个包含所有必要值的对象。例子

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

这一切都很好,如果这些参数都不是 null 或空字符串。发生这种情况时,System.Uri.EscapeDataString(String stringToEscape) 会引发 ArgumentNullException。
问题是我在编译时不知道哪些参数将为空。此外,我不希望为 notnull 值的每个可能组合创建一个对象。
在我的示例中只有三个参数,但如果有 10 个呢?可能的组合呈指数增长。由于无法将字段添加到匿名类型,因此我也无法将参数一一添加。

我该如何解决这个问题?

4

1 回答 1

2

您可以强制非空值...

return RedirectToAction(redirectAction, redirectController,
      new{ personId = foundId,
           personEmail =foundEmail ?? string.Empty,
           personHeigh = foundHeight ?? string.Empty});
于 2008-12-18T15:54:37.653 回答