0

新しい MVC4 パラダイムで動作するように、MVC2 アプリケーションを更新しています。目立たない ajax で入力フィールドを検証するメソッドを呼び出す方法を理解しようとしていますか? 特定の値がデータベース内で一意であるかどうか (サービスによってラップされているかどうか) を把握する必要があります。私はすでにサービスメソッドをマッピングしています。それを呼び出せるようにする必要があるだけです... 通常、これは私が行うことです。

HospitalFinNumber: {
                    required: function (element) {
                        debugger;
                        return '@isFlagSet' != 'True'; //$('AddEnc').val() === 'AddEnc';
                    },
                    minlength: 6,
                    remote: function () {
                        //debugger;
                        return {
                            url: '@Url.Action("ValidateHosFin", "EditEncounter")',
                            data: { hospitalFin: $('#HospitalFinNumber').val(), encflag: '@encflag' }
                        };
                    }
                }

しかし、どうすれば今これを行うことができますか?目立たない ajax と検証では、他の関数が機能しないことを知っていますか? この方法論で過去に機能したことがわかっているこれらの関数を呼び出すことができる方法はありますか? アップデート

フィールドに [Remote(MethodName, Controller, ErrorMessage)] を追加できることに気付きました。しかし、このリモート メソッドを条件付きで呼び出していることだけは覚えています。同じビューを使用して、データベースに新しい行を編集または追加します... 行を編集するだけの場合、フィールドが一意かどうかを確認しません。追加する場合は、フィールドが一意かどうかを確認します。コントローラーでビューに tempData 変数を設定することで、追加または編集しているかどうかを判断します...上記の例で確認できます...その変数が設定されている場合にのみフィールドが必要です。次に、リモートで入力された値が一意かどうかを確認します...目立たない ajax を使用して同様の機能を取得するにはどうすればよいですか?

ENDUPDATE ありがとう。

4

2 に答える 2

1

jQuery.validate.unobtrusive を使用して標準の検証ルールをフックする必要があります。より複雑なカスタム ルールの場合は、ajax 呼び出しを行うアダプターや、検証に必要なものを作成できます。

于 2012-09-11T11:55:28.513 に答える
0

アプリケーションで通常のクライアント側の検証がすべて機能していることを前提としています。

1.ViewModel の PropertyName に Remote 属性を追加します。

[Remote("ActionName", "ControllerName")] public string PropertyName { get; 設定; }

2.上記で定義したアクションをコントローラに作成します。

public JsonResult ActionName(string PropertyName) { return Json(!PropertyName.Contains("disallowedstring", JsonRequestBehavior.AllowGet); }

詳細については、以下を参照してください: Remote Validation Attribute in Action - ここのセクション: http://www.codeproject.com/Articles/249452/ASP-NET-MVC3-Validation-Basic

于 2012-12-11T22:29:36.147 に答える