現在、asp.net mvc で ModelStateDictionary を使用して検証エラーを保持し、ユーザーに戻しています。ModelState.IsValid でモデル全体が有効かどうかを確認できることは特に重要です。ただし、現在取り組んでいるアプリケーションでは、警告を報告できるようにする必要があります。これらはそれほど重要ではないため、フォームのコンテンツは引き続き保存できますが、オプションでアクションを実行できるように、ユーザーに表示する必要があります。
フレームワークを調べて、これを可能にするためにフレームワークを拡張する明らかな場所があるかどうかを確認してきました。私は、警告を含む別の辞書と、モデル警告と呼ばれるモデルエラーのサブクラスを考えています。ビューなどで新しいコンテナー クラスを使用するようにフレームワークを取得する方法はわかりませんが、既存のエラーをすべて機能させたいと考えています。
誰かが似たようなことを試したり、考えを持っている場合は、彼らの意見に感謝します.
アップデート:
ViewDataDictionary を拡張していくつかの警告を追加するところまで持っています
public class AetherViewDataDictionary : ViewDataDictionary
{
public AetherViewDataDictionary()
{
ModelStateWarning = new ModelStateDictionary();
}
public AetherViewDataDictionary(object model) : base(model)
{
ModelStateWarning = new ModelStateDictionary();
}
public AetherViewDataDictionary(ViewDataDictionary viewDataDictionary) : base(viewDataDictionary)
{
ModelStateWarning = new ModelStateDictionary();
}
public ModelStateDictionary ModelStateWarning { get; private set; }
}
私が今抱えている問題は、ビューコードに到達したとき、これはデバッグのためだけのものであり、新しいタイプであるという事実を失っているため、キャストバックして新しい辞書にアクセスしようとすると私には喜びがありません。
public partial class Index : ViewPage<PageViewData>
{
protected override void SetViewData(ViewDataDictionary viewData)
{
base.SetViewData(viewData);
}
}
ここでは正しく設定されていますが、タイプを確認するとなくなっています。
編集:これは愚かなやり方であることが判明しました。以下の回答を参照してください。