1

jquery リモート検証は、data-val-remote-additionalfields にリストされている各追加フィールドに、入力フィールド名 (mymodel.field1) のプレフィックスを追加しています。私の追加フィールドには、モデルの一部ではない隠しフィールドがあるため、「mymodel.fieldhidden」ではなく「fieldhidden」のような通常の名前が付けられています。

コントローラーでリクエスト オブジェクトを確認することでこれを確認し、クエリ文字列キーの 1 つが「fieldhidden」ではなく「mymodel.fieldhidden」であり、データが null であることを確認しました。jquery検証は「mymodel.fieldhidden」を探していて、もちろんそれを見つけることができないため、nullであることは間違いありません。

リモート検証が追加された "model.fieldname" のように書式設定された値を持つ name 属性の追加フィールドに、自動プレフィックスではなく、または jquery 操作を介して、自動プレフィックスではなく、mvc 属性を使用して jquery を作成する方法はありますか?

    [Remote("ValidationMethod", "Controller", AdditionalFields = "FieldNameInModel, ElementNameNotInModel")]
    public string FieldToRemoteValidate { get; set; }
4

1 に答える 1

2

私がしなければならなかったのは、隠しフィールドを2回追加することでした。コントローラーの複数のアクションの一般的なセットアップは、名前がそのままであることを期待しています。そのため、jquery 検証ライブラリが期待する命名規則で隠しフィールドを追加することで、クエリ文字列の一部として送信されました。命名規則は、id 属性が Model_Field、name 属性が Model.Field です。

次に、次のように接頭辞付きの bind パラメータ属性を使用しました。

[Bind(Prefix = "Model.FieldToRemotevalidate")] string FieldToRemoteValidate
于 2014-07-27T17:07:16.447 に答える