問題タブ [xval]

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 に答える
654 参照

asp.net-mvc - xValからnHibernate検証への切り替え

xValとデータアノテーションを使用したASP.NETMVCプロジェクトがあり、nHibernate検証に切り替える必要があります。データ注釈を使用して、DataAnnotationsValidationRunner私は次のようなことをしていました。

nHibernate.Validatorでそれをどのように行いますか?

更新:私はこのようなものを見ました:

でもできない

エラーは正しいタイプではないため(xVal.ServerSide.ErrorInfo)。

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

asp.net-mvc - 外部要因(つまり、データストアの一意性)に基づいてオブジェクトを検証します

説明

私のソリューションには次のプロジェクトがあります。

  • DAL =変更されたエンティティフレームワーク
  • DTO =自分自身を検証できるデータ転送オブジェクト
  • BL =ビジネスレイヤーサービス
  • WEB =プレゼンテーションAsp.netMVCアプリケーション

DAL、BL、およびWEBはすべてDTOを参照しています。これはすばらしいことです。
プロセスは通常、次のように実行されます。

  1. WEBに対してWebリクエストが行われます
  2. WEBはDTOを投稿します
    • DTOは、カスタムActionFilterを介して自動的に検証されます
    • 検証エラーは自動収集されます
  3. (検証はOKです)DTOを提供するBLへのWEB呼び出し
  4. BLはDTOを使用してDALを呼び出します(DTOを通過させるか、単に使用することができます)

DTO検証の問題は...

私のDTOは、自分の状態(プロパティの値)に基づいて自分自身を検証できます。しかし、今のところ、そうでない場合に問題が発生します。BL(および結果としてDAL)を使用して検証する必要があります。

私の実際の例:ユーザーが登録し、WEBが検証されるユーザーDTOを取得します。問題のある部分はusername検証です。その一意性はデータストアに対してチェックする必要があります。
これをどのように行うのですか?

すべてのDTOがIoCとTDDのインターフェイスを実装する(つまり、UserDTOが実装する)という追加情報があります。IUserどちらもDTOプロジェクトの一部です。

不可能な試み

  1. 循環参照を取得するため、DTOでBLを参照できません。
    Compilation error
  2. 部分的なDTOクラスを参照し、そこで検証を実装する追加のDTO.Valプロジェクトを作成することはできません(BL + DTOを参照します)。
    Partial classes can't span assemblies.

可能な試み

  1. ActionFilter外部条件に対してオブジェクトを検証するスペシャルを作成します。これはWEBプロジェクト内で作成されるため、ここで使用されるDTOとBLが表示されます。
  2. DTOをBLに配置し、DTOインターフェイスを他のプロジェクトによって参照される実際のDTOとして保持し、すべてのコードをリファクタリングして、具象クラスの代わりにインターフェイスを使用します。
  3. 外部依存の検証を処理せず、外部依存に例外をスローさせます-おそらくこの問題の最悪の解決策です

あなたは何を提案しますか?

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

asp.net-mvc - 厳密に型指定された ViewModel を使用した ASP.NET MVC xVal

厳密に型指定されたビューモデルで動作するxVal 検証を取得できません。

xVal のすべてのメソッドは、厳密に型指定されたビューモデルを処理するときに使用されないプレフィックスが必要なようです。

私のビューには、次のようなコードが含まれています。

そして、次のコードがコントローラーに入ります。

ただし、上記のコードは機能しません。私は確かに何かを逃しましたが、何がわかりません。xVal を使用するのはこれが初めてです。

助けてくれてありがとう!

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

asp.net-mvc - ASP.NET MVC で Spark View Engine を使用したフォーム送信エラーで、404 リソースが見つからないのはなぜですか?

私の見解:

/User/EditUserName/2/me

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

戻り View() はリダイレクトされるため、機能していないようです

/ユーザー/編集ユーザー名

404エラーが表示されます。なんてこと?検証に xVal を使用していますが、そのすべてが機能し、ユーザーが入力した情報がボックスに表示された前のページを再表示できません。私が間違っていることを知っている人はいますか?これは私を狂わせています!

編集

これが Spark のバグなのか、一体何が起こっているのかはわかりません。EditUserName.aspx ページを追加するとすぐに、404 エラーが発生しなくなり、ページを再表示しても問題なく正常に動作していますか??? 他の人がこの問題に遭遇していないのはどうしてですか?見つけたものはすべて読みましたが、自分のしていることに何の問題もありません。通常のビュー エンジンで動作するのはなぜですか? ユーザー入力のためだけに他のものを使用することに戻したくありませんが、ここでは他に選択肢がないように感じます。

意見:

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

asp.net-mvc - 属性にハードコードされていない MVC 検証エラー メッセージ

ビューに渡される検証エラー メッセージは、データベースから取得する必要があります。

モデルでデータ注釈を使用したいのですが、検証属性のエラー メッセージ キーは文字列または定数にしかできません。

検証のために他のソリューションを受け入れていますが、データベースからエラー メッセージを取得する必要があります。

エラーメッセージが文字列ではない場合、検証のための他の優れたソリューションはありますか? 現在、T4 を使用して定数ファイルを生成することを考えています...

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

asp.net-mvc - どの MVC 検証フレームワークか

ASP.Net MVC フレームワークでエンティティを検証するためのフレームワークとして xVal を評価しています。私は最近、検証ルールが破られるたびに、xVal によって例外がスローされることを発見しました。私には間違っているようです。たとえば、ユーザーがフォームに入力し、3 つの必須フィールドへの入力を忘れた場合、3 つの例外がスローされます。これは良い習慣ですか?(編集:私もこれを読んだので、それは良い習慣ではないと思います)

xVal を使用した経験は何ですか? 例外をスローしない優れた代替検証フレームワークはありますか?

ありがとう

(追伸: 多くの人がこれを読んでいることに気付きました。私が現在Fluent Validation を使用していることをお知らせするためだけです)

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

c# - xValとjQueryの送信ボタン

シンプルな形です。1つのフィールドと送信ボタンがあります。送信ボタンを非表示にします。送信ボタンは、実際には、jQueryを使用して要素を取得してclick()を実行するjavascriptメソッドを呼び出すアンカータグでトリガーされます。これは正常に機能し、フォームの投稿とレコードがDBに正常に書き込まれます。

そこで、検証用にxValを追加しました。単純なクライアント側の検証を追加しようとしています。

アンカータグをクリックしても機能しません。ただし、送信ボタンを再表示して、jsメソッドを呼び出すアンカータグを使用する代わりに、それを使用してフォームを投稿しようとすると、機能します。だから基本的に私はjsメソッドを使って送信ボタンのクリックをトリガーしたときになぜそれが機能しないのかを理解しようとしています。

壮大なアイデアはありますか?どうもありがとう!

ここにいくつかのコードがあります...

Javascript:

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

c# - xVal と複数行のデータの検証

次のスキーマを持つテーブル名割引があります。

PK 割引 ID int

FK CustomerID int

金額

名前 varchar(50)

そのため、顧客に関連するすべての割引を表示しています。各顧客には 3 つの割引レコードがあります。

フォームを生成するときに、関連付けられたテキストボックスの ID と名前を編集用に生成すると、正しく処理するには一意である必要があります。

xVal を使用して検証しようとすると、フィールド名が「Amount」ではなく「Amount_1」というスキーマ名と一致しないため、フィールドが検証されません。

どうすればこれを機能させることができますか?

例を単純化するために省略した他のフィールドがいくつかあるため、3 つの割引すべてを一意の顧客の 1 つのレコードに結合することはできません。顧客ごとに 3 つの割引を 3 行で設定する必要があります。

ここにいくつかのコードがあります:

ここに私のメタデータ

それを機能させる方法についてのアイデアはありますか?

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

asp.net - ModelBinderの問題を引き起こすxValクライアント側のプレフィックス

過去24時間で、私はxValに大いに夢中になりました。私はそれを私の個人的なウェブサイトに紹介しました、そしてそれはチャンピオンのように働きます-私はそれを動かすことがどれほど簡単であったか信じられません。ASP.Net MVC、xVal 1.0、およびDataAnnotationsバリデーターを使用しています。

これと同じコードを作業アプリケーションに入れようとすると、異なる動作が見られます。私はおそらく何か違うものがあることを知っているのに十分論理的ですが、それが何であるかはわかりません。

クライアント側の検証を機能させるために、次のように、フィールドにプレフィックス「message」を追加しました。

等々。私のコントローラーには次のロジックがあります。

これで、自動的に、ModelBinderが実際にオブジェクトにデータを入力します。これは素晴らしい。

問題は、私の作業プロジェクトで同じことをしようとしていることです。クライアント側の検証はうまく機能しますが、ModelBinderがモデルにデータを入力しません。プレフィックスを削除すると問題ないので、プレフィックスの問題であることはわかっています。

スクリプトの唯一の違いは、作業プロジェクトが縮小されたjquery検証ライブラリを使用していることです。

何を探すべきかについてのアイデアはありますか?

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

xval - タイトルとユーザー名の一意の組み合わせを xVal で検証する

記事を作成/編集するためのフォームがあります。すべての記事はユーザーに関連付けられています。

記事が公開された後、各記事へのリンクはユーザー名と記事のタイトルから構成されます ({userName}/{articleTitle} は一意の組み合わせである必要があります)。

記事クラス:

モデルを見る:

意見:

検証には xVal を使用しています。

ValidateTitle - {userName}/{articleTitle} が一意であることを検証するコントローラー アクションです。Ajaxを使用して動作します。

タイトルを編集しているときはすべて正常に動作しますが、選択リストでユーザーを変更すると問題が発生します。user1 のタイトルが無効で、user2 を選択した場合、前のエラー メッセージが残り、user2 のタイトルが有効かどうかを確認できません。

タイトルと同じ方法でユーザー名を検証できますが、ユーザー名とタイトルの組み合わせが無効であるという 2 つのエラーが表示される場合があります。

タイトル エラーとユーザー エラーは同期する必要がありますが、どうすればよいでしょうか。

または、タイトルとユーザーリストを操作する別の方法がありますか?