外部リポジトリから情報をフェッチするカスタム コンテンツ パーツを構築しています。ほとんどの場合、@ Orchard レコード リポジトリを変更する方法と、カスタム ハンドラを使用してデータをフェッチする方法に関するアドバイスに従っています。
外部データ ストアを操作すると、あらゆる種類のネットワーク例外などが発生する可能性が生じ、基になるレコードが保存されなくなります。ただし、 で例外がスローされた場合ContentHandler
は、メソッドによって飲み込まれ、Invoke<TEvents>
(「致命的な」例外でない限り) ユーザーは例外を認識せず、実際には例外が発生していないのに、 AdminController
thatによって通知されます。"Your {0} has been saved."
されていません。
私にとって明らかな回避策は、何らかの方法でエラーを傍受し、実行中のAdminController
. その時点で、コントローラーにフックしてModelState
エラーを発生させることができます。エラーはキャッチされ、誤検知通知なしでエラーが通知されます。
ModelState
コンテンツ ドライバーを介してコントローラーを変更するよりも、この種の外部アクセスを適切に処理できる Orchard で利用可能な他の拡張ポイントはありますか?