問題タブ [asp.net-mvc-2-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 に答える
275 参照

asp.net-mvc-2 - ViewModelがモデルと一致しないため、modelstateが無効になります

私はこのようなモデルクラスを持っています:

GETを介してモデルをブラウザーに送信する場合、匿名型を介して2つのフィールド(FirstName.ToString()+ LastName.ToString()など)の複合としてデータを送信します。

サーバーにPOSTを戻すと、問題が発生します。JSONはモデルとは異なるものとして返されるため、アクションメソッドが。を予期しているため、ModelState.IsValid()を介して無効として返されますList<Person> persons

1つのフィールドが原因でモデルが無効になっているため、ModelViewModel複製コードを作成したくありません。これを回避する方法はありますか?

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

c# - ASP.net検証:DateTimeフィールドも必要に応じてフラグを立てるのはなぜですか?

Webアプリに検証を実装しています...問題は、検証が過剰になっているように見えることです。

コントローラコードは次のようになります。

これはCaseInfoの実装です。

そして私のCaseInfoMap:

しかし、それを実行して値なしでフォームを送信すると、次の検証エラーが発生します。

しかし、私はこれらが必要であるべきだと指定していませんか?!! そして、なぜ決定フィールドと理由フィールドが同様の検証エラーをスローしないのですか?

誰かがこれに光を当てることができますか?

.NET4とMVC2を使用しています。

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

c# - ASP.NET MVC - ModelMetadata.IsRequired をプログラムで設定した後、ModelState.IsValid が true を返すのはなぜですか?

コントロールの Label と Required メタデータを設定する EditorTemplate (文字列用) 内から呼び出す拡張メソッドがあります。(モデルに注釈を付けることができないため、これを行っています)。

Required = trueに設定したフィールドで ModelState.IsValid が取得されない理由は誰にもありますか?

0 投票する
6 に答える
36863 参照

asp.net-mvc - MVC 3 クライアント側の検証結果を検証の概要に表示する方法

クライアント側の検証を使用する登録フォームがあります(ビューモデルで指定された必須、StringLengthなど)。フォームは現在、scaffolder が作成する方法とほぼ同じです。

唯一の違いは、ValidationMessageFor を ValidationSummary のすぐ下の右上に移動したことです。

私がやりたいことは、検証の概要にクライアント側の検証エラーを表示することです。現在、それらはフォームの上に表示されるだけで、検証の概要は使用されていません。検証の概要を使用してクライアント側の検証エラーを表示するにはどうすればよいですか? これは可能ですか?

アップデート

Darin 新しいプロジェクトであなたのコードを使用しました。これは、クライアント側の検証が開始されたときのように見えます。

クライアント側の検証 http://tinypic.com/images/404.gif

これは、検証の要約スタイルが適用された検証の要約に表示されることを期待していました。また、次のようなフォームを送信しました。

提出後

ありがとう、

b3n

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

asp.net-mvc - 検証を実行するのに推奨される場所はどれですか: ViewModel、Model、または Controller?

登録ページがあり、(ViewModel の StringLength および Required アノテーションに加えて) 重複するユーザー名と電子メール アドレスに対していくつかの検証を実行したいと考えています。現在、登録フォームがポストバックされたときに、コントローラーでこの検証を実行しています。ただし、これが適切な場所であるかどうかはわかりません。

ViewModel が UserRepository への参照を持つ必要があるため、ViewModel が適切な場所であるとは想像できません。モデルクラスでこの種の検証を行うことは理にかなっていますか?

もしそうなら、これをモデルに実装して、リポジトリに送信する前に情報が有効かどうかを確認するにはどうすればよいですか?

アップデート

私のコントローラーアクションのコード:

更新 2

ドメイン モデルは、ユーザー名や電子メール アドレスの重複などの制約を気にする必要がありますか?それとも、これはコントローラー レイヤーが気にする必要があるものですか?

アップデート 3

リモート検証や送信時のモデル検証で再利用できるため、コントローラーに検証ロジックを配置するのが最も理にかなっているようです。重複をチェックするようなことは、一般的にコントローラーで行うべきことですか、それともドメイン モデルでこの種のチェックを行うことは理にかなっていますか?

ありがとう、

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

c# - html.textboxfor() は正確に 7 文字である必要があります

私が書いた、正確に7文字のテキストボックスが必要です

この場合は 7 文字しかかかりませんが、7 文字未満にしたい場合は、どのくらいかかりますか? maxlength7文字しか取らないようなプロパティはありますか?

よろしく、マイケル・ベラヤドゥ

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

c# - asp.net MVC2 でのデータ検証の部分クラス

初めての ASP.NET MVC2 アプリケーションを作成しています。nerdDinner アプリケーションで示されているように、データ検証用の部分クラスを作成しようとしていますが、MetaDataType に次のメッセージが表示された赤い行があります。参照?)"

不足している「使用中」の名前空間はありますか? これが私のコードです:

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

asp.net-mvc-2 - モデルの検証を有効にしながら、ユーザーが HTML コンテンツを送信できるようにする方法はありますか?

ユーザーがテキスト入力に html を含むフォーム値を送信できるようにする必要があります。これは内部向けのアプリケーションなので、そうしてもかなり安全です。私は正常に使用しました

問題のメソッドの属性ですが、これにより問題のメソッド/ビューモデルのすべてのモデル検証が抑制されますが、html を1 つだけ許可したいビューモデルの他のすべてのプロパティにデータ注釈を引き続き使用したい場合でも、同じメソッド/ビューモデル内の他のすべてのモデル検証に対して独自のガード句を書きたいとは限りません。[ValidateInput(false)] をビューモデルの 1 つのプロパティだけに適用できないのは残念です。mvc のデフォルトのモデル検証をオーバーライドする必要があると思いますが、その方法に関するドキュメントが見つかりません。すべての検索で、独自のカスタム検証属性を記述する方法のみを説明する結果が得られます。これは、解決しようとしている問題には正しくありません。ありがとう!

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

c# - クライアント側の検証がカスタム属性に対して機能しない

こんにちは、私はカスタム属性を持っています

これはサーバー側では機能しますが、クライアント側では機能しませんが、

両方で動作します。私はこれを読みましたが、役に立ちません。

よろしくお願いいたします。

ありがとうございました

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

asp.net-mvc-2 - ModelState.AddModelError-プロパティ以外のエラーを追加するにはどうすればよいですか?

データベースをチェックインして、とがその組み合わせにすでに存在するCreate(FooViewModel fvm){...}かどうかを確認しています。もしそうなら、モデル状態にエラーを追加してから、ビュー全体を返します。私は試した:fvm.prop1fvm.prop2

...しかし、エラーが表示されるHtml.ValidationSummaryと思われる場所にエラーが表示されません。「モデル」が正しいキーではないのではないかと疑っていますが、Googleでは何も見つかりませんでした。