私は検証とその動作方法について多くの研究を行っています。私は、属性を使用したり、ViewModelを介してそのデータを検証できるカスタム属性を作成することもできることを理解しています。これはうまくいきますが、複数のViewModelで同じ属性の組み合わせを再利用することができます。MVC5での検証属性の再利用
たとえば、プロジェクトXの名前であるMovie Name、Book Name、Person First Name、Last Nameなどの名前を取ることができます。私は同じ検証属性の90%を適用する傾向があります。必要最小限の長さ3、最大の長さ50、文字、スペースなど...あなたは画像を取得します。
ここでは、5つ以上の属性がスタックされた変数を使用します。これらはあらかじめ作成された属性なので、既にコード化されているので、再度コード化したくないということです。だから私の質問はこれです:
これらのすべてのものを検証し、何が間違っているかに基づいて異なるエラーメッセージを提供し、同時にいくつかの組み込み属性を再利用するCustomValidateName属性をどのように作成できますか? .NETフレームワークを使用して、ホイールを再発明しているわけではありません。一番下の行は、Name変数があるときはいつでも、通常の5+の代わりにこの属性を入れることができるということです。
はプロパティとベースビューモデルを検討し、その検証は私が持っている –
@StephenMuecke属性が、私は、私はお互いを拡張するオブジェクトのこれらの鎖を持っているでしょうし、悪夢をデバッグするだろうと感じてもらいます。それとも、私は、カップルのビューモデルで多くのものが使用されているが、すべてが複雑になり、デバッグするのが難しいものではない、1つの基本オブジェクトを持つだろう。私はカスタム属性を作成することが可能かどうか、その中に他の属性を参照して、その結果に基づいてカスタムエラーメッセージを提供したいかどうかを見たいと思っていました。 – Bojan
いくつかの問題があります:1)バリデーションは、一般的には類似していますが、レイヤー間でもビュー間でも同じではありません。たとえば、InsertフォームはUpdateフォームよりもリラックスしています。 POST APIはInsertフォームの方が厳しくなりますが、実際にそれらを必要とするViewModelの5つの属性ではなく、1つのファイルで使用ポイント(シナリオごとに4〜5)を離れて15〜20の異なる設定を持つことになります。 2)コントロールとライブラリは、DataAnottation属性について知っています。あなたは多くの機能を複製する必要があります –