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をスローします。
問題は、コンパイル時にどのパラメーターがnullになるかわからないことです。また、notnull値の可能な組み合わせごとにオブジェクトを作成したくありません。
私の例では、パラメータは3つしかありませんが、10個あるとしたらどうでしょうか。可能な組み合わせは指数関数的に増加します。anonタイプにフィールドを追加することはできないため、パラメーターを1つずつ追加することもできません。

この問題を解決するにはどうすればよいですか?

4

1 に答える 1

2

null以外の値を強制することができます...

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