2

私のエラー処理は、コントローラーの実行中に生成されたエラーを(一部は手動で、一部は自動的に)収集します。次に、エラーメッセージを表示する部分ビューがあります。エラーメッセージをViewDataに保存します(RedirectResultで応答する場合はTempDataに転送します)。

問題は、子アクションがエラーを引き起こした場合、部分ビューがレンダリングされた後にそれら(少なくともページのさらに下のアクション)が実行されるため、表示されないことです。

今のところ、私が持っている唯一のやや必死のアイデアは、レイアウトページの下部にあるjavascriptにメッセージをレンダリングし、そのjavascriptでエラー表示ボックスを更新することです。しかし、それは悪臭がします、私はこれのためにクライアント側のコードを必要とすべきではありません。

何よりもまず、部分ビューを「レイジーレンダリング」する方法はありますか?

4

1 に答える 1

2

Html.Action子アクションごとに変数に結果を使用して保存することができます。

Html.RenderPartial完了したら、「エラーパネル」を呼び出すことができます。

@{
    var result = Html.Action("ChildAction"); 
}

@Html.Partial("ErrorMessages")

@result

そして、アクションを呼び出す代わりに変数を配置して、通常のレイアウトを再開します。

于 2012-11-09T02:01:43.357 に答える