問題タブ [asp.net-mvc-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 投票する
1 に答える
1879 参照

c# - サーバー側でルート値から URL を解決する

ValidationAttribute (サーバー側でのみ機能するリモート検証用)を作成しようとしていますが、 IsValid メソッド内で、url ルート値から url を解決する必要があります。これが私の初期設定です:

何かご意見は?

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

asp.net - カスタム検証 : validationContext からプロパティ名を取得します

私の ASP.NET MVC プロジェクトでは、カスタム検証属性を作成しました。これが私が苦労しているコードです:

以下のリンクから完全なコードを見ることができます:

https://bitbucket.org/tugberk/tugberkug.mvc/src/6cc3d3d64721/TugberkUg.MVC/Validation/ServerSideRemoteAttribute.cs

変数についてfullUrl、プロパティ名をクエリ文字列に追加しようとしていますが、を使用するvalidationContext.MemberNameと失敗します。「用語」として静的にすることで一時的な修正で問題を解決しましたが、それはまったく修正ではありません。

では、からプロパティ名を取得する方法は何validationContextですか?

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

asp.net - DataTypeAttribute は DefaultModelBinder クラスの検証属性です

DataTypeAttributeclass が から継承されていることに気付きましたSystem.ComponentModel.DataAnnotations.ValidationAttribute

ASP.NET MVCDefaultModelBinderクラスに関してDataTypeAttributeは、検証属性ですか? 平易な英語で、ModelBinder はオブジェクトを検証しますDataTypeAttributeか?

たとえば、DataTypeプロパティをに指定DataType.EmailAddressすると、電子メール アドレスが検証されるか、この属性はオブジェクトのメタデータのみを提供します。

アップデート

SO で同様の質問を見つけました:

DataTypeAttribute 検証は MVC2 で機能していますか?

したがって、それによると、検証属性として機能していません。System.ComponentModel.DataAnnotations.ValidationAttributeでは、検証属性として機能していないのに、なぜ継承されるのでしょうか?

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

asp.net-mvc - 検証属性のない部分ビュー (ASP.NET MVC 3)

私の ASP.NET MVC 3 アプリの 1 つで奇妙なことが起こり続けています。

jQuery Ajax APIを介して挿入行をフェッチしていますが、問題はありません。しかし、必要な部分ビューを取得すると、検証属性がなく、それらの行の検証を再バインドできません。

ここに私がajax応答として得るものがあります:

ここに私が得るべきものがあります:

GUID は同じである必要はありません。いわゆるノンシーケンシャルバインディングをしています。

これは、新しい挿入行を取得するために jquery ajax を介して呼び出しているアクションです。

なぜこれが起こっているのかを理解するために、私はほとんど気が狂っています。何か案が?

0 投票する
5 に答える
7157 参照

asp.net-mvc - ASP.net MVC での流暢な検証 - データベースの検証

ASP.net MVC 3 プロジェクトで Fluent Validation フレームワークを使用しています。これまでのところ、すべての検証は非常に単純でした (文字列が空でないこと、特定の長さだけであることなど) ですが、データベースに何かが存在するかどうかを確認する必要があります。

  1. この場合、Fluent Validation を使用する必要がありますか?
  2. Fluent Validation を使用してデータベースの検証を行う必要がある場合、依存関係をどのように処理すればよいですか? バリデータ クラスは自動的に作成されます。データベースにクエリを実行するには、何らかの方法でリポジトリ インスタンスの 1 つを渡す必要があります。

私が検証しようとしているものの例は次のとおりです。

ページに、選択した項目のリストを含むドロップダウン リストがあります。新しいレコードを保存する前に、選択した項目が実際にデータベースに存在することを確認したいと考えています。

編集
Fluent Validation フレームワークでの通常の検証のコード例を次に示します。

コントローラ:

ご覧のとおり、私は Validator を自分で作成することはありません。これは、 の次の行により機能しますGlobal.asax

問題は、リポジトリを使用してデータベースとやり取りする必要があるバリデーターができたことですが、バリデーターを作成していないため、具体的な型をハードコーディングする以外に、その依存関係を渡す方法がわかりません。

0 投票する
3 に答える
2781 参照

jquery - ウィザードでasp.net mvc 3控えめなjavascript検証を使用するには?

私は asp.net mvc 3 を使用しており、目立たない javascriptを利用したいと考えています。私は非常に長いフォームを設計していますが、分割しないと非常に圧倒される可能性があります。

jquery フォーム ウィザードを使用して、圧倒されないようにウィザードに分割することにしました。ウィザードでデータ注釈と邪魔にならない Java スクリプトをどのように使用すればよいか、私は不思議に思っていません。

現時点では、すべてが 1 つの大きな形のままですが、ウィザードではバラバラに見えます。フォームの最後に送信ボタンが 1 つだけあり、クリックするとフォーム データがシリアル化され、そのデータでサーバーに ajax ポストが実行されます。

mvc検証を使用するときに初めて見たものから、クライアント側の検証がトリガーされる前に、ユーザーは送信ボタンをクリックする必要があります。送信を押しても何も起こらず、ウィザード全体を再度実行して検証エラーを見つける必要があるため、ユーザーがフィールドを離れると混乱するので、それが可能かどうか疑問に思っています。

間違えたらすぐに知らせてくれると助かります。

検証機能を持つ jquery フォーム プラグインを使用する jquery ウィザードは知っていますが、コードの一貫性を保つために、可能であれば 1 つの方法に固執するようにしています。

編集

これは私が送信ボタンに持っているものです

したがって、これにはいくつかの問題があります。まず、送信時に検証のみが実際にトリガーされます。それがトリガーされ、検証エラーがウィザードの 2 番目のステップにある場合、ユーザーには表示されません (最初の間違った検証エラーを見つけてそのステップに切り替える方法を見つけられない限り)。

私が目にする 2 番目の問題は、検証エラーがあるかどうかを確認するために最後まで待たなければならないことです。私はむしろ彼らにできるだけ早く知らせます。

編集

ウィザードは jquery 検証を使用しているようですが、何らかの理由で mvc jquery 検証方法で動作していません。

さらに調査したところ、ウィザードはトリガーするクラスとして「必須」を確認する必要があることがわかりました

クラスを使用してフォームを検証するjqueryの検証のドキュメントには表示されません。これはその人が作ったものですか?

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

c# - モデルが変更されたときのASP.NETMVCTryValidateModel()の問題

最初のデータセットがセッションに保存される2段階のフォームプロセスがあります。

..。

コントローラ

TryValidateModel(modelVM)seesionModelからviewModelにマッピングしているにもかかわらず、VideoClipとVideoThumnailが必要であると言ってfalseを返します。ブレークポイントを追加し、それらがnullでないことを確認しました。

ModelStateとValidateModel()がどのように機能するかについて、私が知らない基本的な機能がいくつかあるようですが、何がわからないだけです。

アップデート

私は問題を解決したとは言えませんが、それほどきれいではない回避策を見つけました。ModelStateに入ると、ModelValueを設定しSetModelValue()、モデル状態から手動でエラーを削除してから呼び出すTryValidateModel()ことができます。値を追加する必要はなく、試したことのないエラーを削除するだけです。これが私の回避策です。

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

asp.net-mvc-3 - ASP.NET MVC 3 - 失敗するのではなく、HTTP POST にバインドするときに DTO に null フィールドを設定する

単純な形式の DTO オブジェクトを使用する HttpPost コントローラー アクションがあります。

DTO オブジェクトには、範囲の作成に使用される null 許容の日時フィールドがあります。nullable に設定されている理由は、モデルにバインドされているフォームがクエリ フォームであり、ユーザーがフォームに日付値を入力する必要がないためです。

私が直面している問題は、ユーザーが無効な日付を入力した場合、MVC の既定のモデル バインディングでエラー メッセージを表示することです。DateTime を受け取るコントローラー アクションがある場合、これは問題なく発生しますか? 引数として入力しますが、DateTime を保持する DTO を渡しているので? モデル バインディングを入力すると、DateTime を設定するだけのように見えますか? 変数を null にします。これにより、予期しない結果が発生します。

ノート:

DateTimeをバインドできない場合、MVCモデルバインディングに「失敗」するように指示する方法はありますか? null に設定するのではなく、フォーム DTO オブジェクトに値を設定しますか? より良い方法はありますか?form/dto オブジェクトには大量のプロパティがあるため、個々のフォーム入力をコントローラーに渡すことは不可能です (読みやすくするために、それらの多くを除外しました)。

0 投票する
3 に答える
3237 参照

model-view-controller - MVC でのデータ検証

MVCアーキテクチャに従って、DVDをレンタルするためのフォームに記入するための「ビュー」があるとします。「コントローラー」または「モデル」のいずれかで、フォームデータを検証するのは誰ですか? ありがとう

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

asp.net-mvc - MVC 3 検証が複雑なモデルで機能しない

[Required] 属性が設定された一連のプロパティを持つ UserModel を含む UserFormModel があります。MVC 3 をそのまま使用すると、デフォルトでモデル内のモデルが検証されることを読みました。ただし、空の UserModel を含む UserFormModel を返すビューで空のフォームを送信すると、ModelState.IsValid は常に true になります。

UserModel だけをコントローラーに送り返してみましたが、問題はありません。検証されていないのは、複雑なモデルを扱っているときだけのようです。

UserFormModel 内の User プロパティの [Required] 属性を使用して試してみましたが (これは、デフォルトの動作が機能するために必要ではないと思います)、それでも検証は行われません。

これに関するアイデアは大歓迎です。