Строить объекты с переменным количеством членов? - PullRequest
0 голосов
/ 18 декабря 2008

На моей странице mvc asp.net я хочу вызвать RedirectToAction (actionName, controllerName, values).

Параметр values ​​- это объект, который содержит все необходимые значения. Пример

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

Это хорошо, если ни один из этих параметров не является нулевым или пустой строкой. Когда это происходит, System.Uri.EscapeDataString (String stringToEscape) создает исключение ArgumentNullException.
Проблема в том, что я не знаю во время компиляции, какие параметры будут нулевыми. Кроме того, я бы предпочел не создавать объект для каждой возможной комбинации ненулевых значений.
В моем примере есть только три параметра, но что если бы было 10? Возможные комбинации растут в геометрической прогрессии. Поскольку невозможно добавить поля к типу anon, я также не могу добавлять параметры по одному.

Как я могу решить эту проблему?

1 Ответ

2 голосов
/ 18 декабря 2008

Вы можете использовать ненулевые значения ...

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