問題タブ [model-validation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
22927 参照

asp.net-mvc-3 - モデルの検証 / ASP.NET MVC 3 - 条件付き必須属性

ASP.NET MVC 3 アプリケーションに問題があります。私は自分のモデルに 2 つのプロパティを持っているので、どちらが空であるかに基づいてビューに必要なプロパティは 1 つだけです。たとえば、電話番号を入力すると電子メールは不要になり、その逆も同様ですが、両方を空のままにすると、いずれか 1 つが必要になります。以下は私のモデルです。

モデルを検証するためにカスタム属性を作成する必要がありますか? もしそうなら、どうすればこれを達成できますか?

0 投票する
1 に答える
37 参照

ruby-on-rails - Rails 3、電子メールアドレスがdbmにあることを確認しようとしましたが、間違った数の引数エラーが発生しました

私のソースは次のとおりです: https://gist.github.com/f01685376a02a577a9cb

問題の方法:

User.find_by_email(address)解決策はの値を次のように変更することだと思いますが、User.find_by_email(next_approver_email) = (address)それが機能しないことはわかっています。

Next_approver_emailuser.emaildb列に対してチェックするために結び付けているものです

何か案は?

0 投票する
1 に答える
1347 参照

asp.net-mvc - モデルの検証をサービス クラスに移行 - ASP.NET MVC

Service クラス内から検証を実行できるようにしたいと考えています。次のようなコントローラーアクションがあります。

_postDataService.SavePost() が無効なデータを保存できるという事実が気に入らず、モデルの検証を _postDataService.SavePost() メソッドに移動したいと考えています。私の質問は、これを行う最もエレガントな方法は何ですか? また、モデルの検証を Service メソッドに移動した場合、モデルのエラーをコントローラーに返すにはどうすればよいでしょうか? 最後に、データ アクセスが必要なため、電子メール アドレスの一意性などのモデル検証はどこに行くのでしょうか? 私が見たすべての同様の質問の中で、これを行う簡単な方法を提供するものはありません。

この解決策も検討しましたが、この記事は古く、最新ではないと感じています。

0 投票する
2 に答える
332 参照

c# - MVC3のリスト内のオブジェクトに設定された属性をピックアップするためのモデル検証を取得する方法は?

これに似たモデルのセットがあります

次に、次のようなコントローラーメソッドがあります

私の問題はModelState.IsValid、リスト内のオブジェクトの検証をトリガーしていないことです。

どうすればこれを達成できますか、それとも可能ですか?

または、リスト内の要素の検証を手動でトリガーできますか?

0 投票する
1 に答える
2229 参照

asp.net-mvc-3 - ASP.NET MVC3 Request Validation 例外をモデルまたはプロパティの検証エラーとして処理する方法

私の質問はうまくいけばかなり簡単です。フォームを送信する際に、無効な文字 (特に HTML) を含むすべてのプロパティ (フィールド) をモデル エラーとしてフラグ付けしたいと考えています。私が直面している問題は、モデルのバインド/検証の前にリクエストの検証が開始され、HTTP 500 が発生することです... Model/ViewModel でプロパティ属性を使用するか 、web.config で使用することを宣伝する同様の質問を見ましたが、探しているのは、「リクエスト検証の例外をグローバルにキャッチし、モデルエラーとして表示する」方法です。さらに、HTML タグを「削除」したくありません。入力が無効であることをユーザーに通知したいのです。[AllowHtml]<httpRuntime requestValidationMode="2.0" />

不正な入力を見つけるために正規表現の検証属性を使用することを考えましたが、前述したように、ASP.NET MVC3 での要求の検証は、モデルのバインド/検証の前に発生するため、それはうまくいきません...

Request Validation の非常に優れた概要については、こちらを参照してください。

0 投票する
2 に答える
2057 参照

.net - ASP.NET MVC 3 モデルで Id と UserName を一意に強制する

私の ASP.NET Web サイト ユーザー モデルでは、 GuidIdと StringUserNameの両方を一意にする必要があります。Entity Framework を使用してモデル オブジェクトを DB にマップします。

ASP.NET MVC でこの一般的な制約を容易にする組み込み属性またはその他のメカニズムはありますか? それとも、ユーザー登録フォームでユーザー名の一意性を手動でチェックする必要がありますか?

0 投票する
1 に答える
79 参照

asp.net-mvc-3 - 「ユーザーはXを実行できます。ユーザーはオブジェクトYを所有しています」:モデル検証またはコントローラーロジックにロジックを実装しますか?

たとえば、「ユーザーは、ユーザーが作成したコメントのみを編集または削除できる」というロジックを考えてみてください。

My Controller Actionsは、現在ログインしているユーザーがコメントに影響を与える可能性があるかどうかを確認するロジックを繰り返します。例

もちろん、そのスニペットをコピー/貼り付けしないように、そのロジックをメソッドにバンドルすることもできます。ただし、そのコードをコントローラーから取り出してValidationAttributeに入れると、アクションが小さくなり、テストを記述しやすくなります。例

モデル検証はこの仕事に適したツールですか?私はその懸念をコントローラーのアクションから取り除くのが好きです。しかし、この場合、事態はさらに複雑になる可能性があります。これは、このアクションがRESTful APIの一部であり、ModelStateの検証エラーに応じて異なるHTTPステータスコードを返す必要があると考える場合に特に当てはまります。

この場合の「ベストプラクティス」はありますか?

0 投票する
1 に答える
353 参照

c# - 条件付きモデルの検証

私は次のモデルを持っています:

このモデルにいくつかの値を設定し、次のようにビューに返す Action があります。

そのビューには、次のように TrackingRef を設定できるフォームがあります。

使用しているトラッキングのタイプに応じて、この TrackingRef をさまざまな長さに対して検証する必要があります。たとえば、追跡タイプを TNT に設定したので、minlength を 7 にしたいのですが、UPS に設定した場合は minlength を 8 にしたいのですが、これは可能ですか? モデルで属性を設定できることはわかっていMinLengthますが、使用している追跡のタイプに基づいて動的/条件付きにしたいと考えています。

0 投票する
2 に答える
3409 参照

asp.net-mvc-3 - ASP.NET MVC 3 およびデフォルト値 0 のドロップダウンリストの検証属性

デフォルト値が0のドロップダウンリストを持つ検証属性を使用して、必要な検証エラーをスローする最良の方法は何ですか? 値が 0 またはデフォルト値の場合、属性がモデルのエラーをスローするようにします。

0 投票する
2 に答える
2450 参照

asp.net-mvc-3 - 検証属性が 2 回トリガーされる

私のMVC3アプリケーションでは、モデルを持っています(重要なプロパティは削除されていません):

問題は、アクションが送信された検証属性が 2 回呼び出された場合で、要約すると 2 つではなく 4 つのエラーが発生する可能性があります。

コントローラーのコードで Validate メソッドを使用していません。この問題はカスタム属性でも発生しますが、必須属性では発生しません。また、カスタム属性の ctor も 2 回呼び出されることに注意する必要があります。

私の行動

ビューでは、次を使用してエラーをレンダリングします。

そして、ViewData.ModelState に既に 2 回エラーが含まれていることをもう一度再確認します。