問題タブ [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 投票する
5 に答える
2227 参照

asp.net-mvc-2 - ASP.MVC 2 RTM + Id プロパティでの ModelState エラー

私はこのクラスを持っています:

そして、このアクション:

それが私の見解です:

しかし、ModelState は常に無効です。ご覧のとおり、MVC 検証では 0 は無効ですが、私にとっては有効です。Id プロパティに何らかの検証を行っていないので、どうすれば修正できますか?

更新: 方法や理由はわかりませんが、ID の名前を変更すると、私の場合は PK に変更され、この問題が解決します。

これが私のロジック/構成の問題なのか、それともバグなのか予期された動作なのかを知っていますか?

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

asp.net-mvc-2 - ASP.NET MVC 2 のモデルレス ビューを使用したクライアント側の検証

MVC 2 の新しいクライアント側検証機能を使用したいのですが、いくつかのテキスト ボックスしかない特定のビューがあり、厳密に型指定されたモデルを作成したくありません。強く型付けされたモデルを使用して MVC 2 の検証の良さを活用する方法を誰かが説明できますか?

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

validation - MVC: 部分的なページで、ポストバックなしで JS から検証を開始する

MS MVC 検証ライブラリを使用してクライアント/javascript から検証を開始するにはどうすればよいですか?

MS ASP.Net MVC を使用して、モーダル ダイアログ (パスワードの変更) に PartialView を含むページがあります。ユーザーが「保存」を選択すると、ページ全体のポストバックなしでクライアント側でこれを検証する必要があります。JS で partialView を投稿および更新できますが、クライアントの検証を開始できません。MS MVC 検証は、ポストバック (入力タイプ = '送信') で開始されます。JSでこれを開始するにはどうすればよいですか?

ポストバック機能を使用したページ全体での検証。ありがとう

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

asp.net-mvc - 動的なクライアント側の検証

動的クライアント検証を行っている人はいますか?もしそうなら、どのようにしていますか?

jqueryバリデーターを介してクライアント側の検証が有効になっているビューがあります(以下を参照)

これにより、送信ボタンをクリックすると検証を呼び出す JavaScript コードがページに生成されます。

テキストボックスで onblur イベントが発生したときに検証を実行したい場合、どうすればこれを機能させることができますか?

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

c# - 強く型付けされたHTMLヘルパーを使用したPOSTでのASPMVC2モデルバインディングの問題

そのため、MVC1.0からMVC2.0RTMへの移行を検討しています。私が従い始めたい規則の1つは、テキストボックスなどのコントロールを生成するために強く型付けされたHTMLヘルパーを使用することです。

ただし、簡単なジャンプではないようです。次のような行を置き換えて、最初のフォームを移行してみました。

...このような行の場合:

以前は、これは次のメソッドシグネチャを使用して、POSTの適切なビューモデルにマップされていました。

代わりに、現在、空のオブジェクトが返されます。切断は、ビューモデルを、ページメタデータやその他の楽しいものを一緒に含むより大きな集約オブジェクトに渡すという事実にあると思います(したがって、x.Data.FirstNameの代わりにx.FirstName)

だから私の質問は、MVCフレームワークが元の行のようにフォームコレクションをビューモデルに適切にキャストできるようにしながら、強く型付けされたヘルパーを使用するための最良の方法は何ですか?ビューに渡す集計タイプを変更せずにそれを行う方法はありますか?

ありがとう!

更新:したがって、bind属性はうまく機能しましたが、基本的にすべての投稿されたビューモデルにそれを適用する方法が好きではありませんでした。継承階層を変更して、すべてのビューモデルが、という名前の集約プロパティではなく、ページコンテンツやその他のメタデータを含む基本クラスから継承するようにしましたData

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

asp.net-mvc - ASP.NET MVC 2.0 の検証とエラー メッセージ

MVC 2.0 で DataAnnotation の検証属性の ErrorMessage プロパティを設定する必要があります。たとえば、モデル プロパティの実際のエラー メッセージの代わりに ID を渡すことができるはずです。

次に、この ID ("EmailContentID") を使用して、データベースなどの別のサービスからコンテンツ (エラー メッセージ) を取得します。次に、ID の代わりにエラー エラー メッセージがユーザーに表示されます。これを行うには、DataAnnotation 検証属性の ErrorMessage プロパティを設定する必要があります。

DataAnnotationsModelValidatorProvider の保護されたオーバーライド IEnumerable GetValidators(ModelMetadata メタデータ、ControllerContext コンテキスト、IEnumerable 属性) をオーバーライドするだけで、簡単な作業のように思えます。

しかし、今は複雑です....

A. MVC DatannotationsModelValidator の ErrorMessage プロパティは読み取り専用です。したがって、ここでは何も設定できません B. System.ComponentModel.DataAnnotationErrorMessage プロパティ (取得および設定) は MVC DatannotationsModelValidator で既に設定されているため、再度設定することはできません。設定しようとすると、「プロパティは複数回設定できません...」というエラー メッセージが表示されます。

誰でもこれについて正しい方向性を教えてもらえますか?

前もって感謝します。

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

asp.net-mvc-2-validation - MVC2ValidationSummaryおよびクライアント側の検証

クライアント側の検証中にValidationSummaryエラーを表示したい。現在、検証メッセージは、クライアント側の検証中にフィールドの横にのみ表示されます。私が使う…。

  1. MicrosoftAjax.js
  2. MicrosoftMvcAjax.js
  3. MicrosoftMvcValidation.js

クライアントサイドライブラリとして。

スレッド内にあるjQuery検証ライブラリのソリューションがあります… ASP.NETMVCValidationSummaryクライアント側検証用

これを行う簡単な方法はありますか?

私はxValが動作するDataAnnotationを使用しましたが、検証の概要に対してクライアント側の検証を有効にするのは非常に簡単でした。

例えば

MicrosoftAjaxを使用してMVC2でこれを行う方法はありますか?

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

asp.net-mvc - 誤った日付が送信されると、渡された DataAnnotation 属性の IsValid オーバーライドの ASP.NET MVC 2 "値" が null になる

これは、スタック オーバーフローに関する最初の質問です。現在取り組んでいる ASP.NET MVC2 プロジェクトで発生した問題についてサポートが必要です。私はMVC設計に比較的慣れていないことに注意してください。ここに行きます:私は、人に関するさまざまな詳細が表示される通常のフォームを持っています。その一つが「生年月日」です。私の見解はこんな感じです

日付のみを正しく表示するために、見つけたエディター テンプレートを使用しています。

LinqToSql デザイナーを使用して、SQL データベースからモデルを作成しました。いくつかの検証を行うために、部分クラス Person を作成して、デザイナーによって作成されたものを拡張します (同じ名前空間の下):

正しい日付が入力されていることを確認したい。そこで、日付を検証するためにカスタム DataAnnotation 属性を作成しました。

さて、私の問題はこれです。DateOfBirth フィールドに間違った日付を入力すると、[Birthday(ErrorMessage=".....")] のような属性を使用してもカスタム メッセージが表示されません。表示されるメッセージは、データベースから返されたもの、つまり「値 '32/4/1967' は DateOfBirth には無効です。」 です。コードの周りにいくつかのブレークポイントを入力しようとしましたが、日付が正しくない場合、属性の「値」は常に null ですが、日付が正しい形式の場合は常に値を取得することがわかりました。デザイナが生成したコードにも同じ ( value == null ) が渡されます。

このことは私を夢中にさせています。誰でも私がこれに対処するのを手伝ってくれますか? また、ビューからデータベースへのエントリポイントが正確にどこにあるかを誰かが教えてくれれば。モデルバインダーと関係ありますか?「送信」ボタンを押すと、渡される値を正確に確認したかったためです。ありがとうございました。

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

c# - ASPNET MVC-ModelState.IsValidがfalse「xフィールドが必須」であるのに、そのフィールドに値があるのはなぜですか?

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

ビューから注文を送信すると(input type =submitではなく$.postを使用)、コントローラークラスに送信されます。

ModelState.IsValidは常にfalseを返し、「注文番号フィールドは必須です」というエラーが表示されます。しかし、このフィールドには値があります(??理由)

値があるのに「値が必要」と言うのはなぜですか?私は何かを逃したことがありますか?送信ではなく$.postが原因ですか?私に何ができる?

デバッガーは次のようになります。

代替テキストhttp://www.freeimagehosting.net/uploads/f734f3d95d.png

編集:追加情報...

どういうわけか、モデルのバインドが行われていないと思います。ここにあるこのコードを試してみると:)

次に、ModelState.IsValid=trueです。CompositeValidator.Validate()は0エラーを返します。これはモデルがバインドされていないことを示していると思いますが、それでも理由はわかりません。

コントローラのメソッドは実際には次のようになります(この質問を最初に書いたときにフィルタを見逃しました)

そして、JsonFilterはこれを実行して、jsonが送信したデータからPOCOを抽出します。

この行にブレークポイントを設定すると、orderは有効であり、さらにorder.OrderNumberの値は正しいです。

まだ解決されていませんが、うまくいけば、この追加情報が解決策を見つけるのに役立ちます

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

asp.net-mvc - asp.net mvc の ascx ファイル (ユーザー コントロール) でのクライアント側の検証

ascx ファイルにログオン フォームがあり、それを部分的にレンダリングします。このフォームにクリネット側の検証を追加するにはどうすればよいですか?

以下のコードが機能しません