1
これは、これにフォローアップされています What does MVC3 do with C# Optional Parameters?MVC3オプションのパラメータ
私は次のシグネチャを持つアクションがあります:サーバー/ショー/ 1 pubErrorsを要求するには
public ViewResult Show(int Id, PublishingErrorSummary pubErrors=null, String title=null)
はnullではありませんが、タイトル無効である。どのように可能ですか?これらはちょうど2つのオブジェクトですが、文字列は何とかnullになるように管理します。どこでこれを修正できますか?
編集:クラス定義は
public class PublishingErrorSummary
{
public List<string> StepOneErrors { get; set; }
public List<string> StepTwoErrors { get; set; }
public List<string> StepThreeErrors { get; set; }
public List<string> StepFourErrors { get; set; }
}
このような迅速な対応に感謝します。 "デフォルトのモデルバインダーは、リクエストでこのモデルのプロパティの1つに対応するキーが見つかると初期化されます" それは意味がありますが、PublishingErrorSummaryのいずれのプロパティにも対応するキーはありません。私は今、クラスの定義を追加しています。複合型は常にデフォルトのバインダーによってインスタンス化されますか?私のルートは典型的なもので、IDのみがオプションで、その他はルートで言及されていません。 –
@ Mariusz.W、あなたは正しいです。このモデルのプロパティに一致するリクエスト内にパラメータがない場合でも、デフォルトのモデルバインダは常に複雑なオブジェクトをインスタンス化します。私は私の答えを更新しました。 –
ありがとう!すべてのリストがnullであるかどうかをチェックします:D今日のカスタムバインダーには気分がありません! –