別のフレームワーク内でプラグインを作成しているため、コントローラーを変更できません。OnActionExecuted でモデルに変更を加える Actionfilter があります。これは、コントローラーがビューを返すときに正常に機能します。ただし、ページが AJAX を使用し、コントローラーが RenderPartialViewToString の実装を使用して JSON 結果を返す場合、結果 (モデル) は OnActionExecuted の前にクライアントに返されます。
デバッガーでコードをステップ実行しました。ビューを返すときのシーケンスは次のとおりです。
OnActionExecuting
controller's ActionResult SomeMethod()
return View(...
OnActionExecuted
SomeView.cshtml
これは、AJAX を使用する場合のシーケンスです。
OnActionExecuting
controller ActionResult SomeMethod()
return Json(... html = this.RenderPartialViewToString("...", myModel)
SomeView.cshtml
OnActionExecuted
モデルが部分ビューで返される前にモデルを変更する方法について何か考えはありますか?