0


mvc2 から mvc3 へのアップグレードの過程にあり、リモート検証機能に本当に問題があります。これは、web.config の appsetting がどのように見えるかです

<appSettings>
    <add key ="ClientValidationEnabled" value ="true"/>
    <add key ="UnobtrusiveJavaScriptEnabled" value ="true"/>
    <add key="CrystalImageCleaner-AutoStart" value="true" />
    <add key="CrystalImageCleaner-Sleep" value="60000" />
    <add key="CrystalImageCleaner-Age" value="120000" />
  </appSettings>

これは、私のモデルと関連するメタデータがどのように見えるかです

[MetadataType(typeof(setupEmployeeValidator))]
    public partial class setupEmployee { }


    public class setupEmployeeValidator
    {
        [Required(ErrorMessage = "Employee Name is Required")]
        [StringLength(50, ErrorMessage = "Employee Name should be less than {1} characters")]

        public String EmployeeName { get; set; }
        [Required(ErrorMessage = "ID card number is Required")]
        [RegularExpression(@"^\d{5}-\d{7}-\d{1}", ErrorMessage = "Format for CNIC is xxxxx-xxxxxxx-x")]
        [StringLength(16, ErrorMessage = "ID card number should be less than {1} characters")]
        [Remote("CheckDuplicateNIC","hcm","Employee Already Exists")]
        public String CNIC { get; set; }
        [Required(ErrorMessage = "Gender is Required")]
        public String Gender { get; set; }
        [Required(ErrorMessage = "Religion is Required")]
        [StringLength(50, ErrorMessage = "Religion should be less than {1} characters")]
        public String Religion { get; set; }
        public DateTime? DOB { get; set; }
        [Required(ErrorMessage = "Nationality is Required")]
        [StringLength(50, ErrorMessage = "Nationality should be less than {1} characters")]
        public String Nationality { get; set; }
        [Required(ErrorMessage = "Marital Sataur is Required")]
        public String MaritalStatus { get; set; }
        public int ScaleID { get; set; }

    }

必要なjqueryファイルが正しい順序でページにロードされていることを確認しました。生成された html コードを検査すると、リモート検証用に生成された HTML5 フィールドが見つかりません (正規表現および必要な検証用のフィールドがそこに存在します)

<input type="text" value="" name="CNIC" id="CNIC" data-val-required="ID card number is Required" data-val-regex-pattern="^\d{5}-\d{7}-\d{1}" data-val-regex="Format for CNIC is xxxxx-xxxxxxx-x" data-val-length-max="16" data-val-length="ID card number should be less than 16 characters" data-val="true">

何が問題なのかわからない。サンプルの mvc3 プロジェクトを作成しましたが、そのプロジェクトではすべて正常に動作しているように見えますが、アプリケーションに実装しようとするとうまくいきません。どんな助けでも大歓迎です。
ありがとう

4

1 に答える 1

1

[Remote( "CheckDuplicateNIC"、 "hcm"、 "従業員はすでに存在します")]

上記の行が原因です。MVC2では、リモート検証用に独自の検証属性を作成しました。これは、すべてのリモート検証属性の基本クラスとして機能し、残念ながら同じ名前でした。私がmvc3に変換したとき、.NETはまだ古いクラス(MVC 2用に作成された私のクラス)にパラメーターを渡していました。そのため、html5属性はリモート検証専用に生成されていませんでした。
ありがとう

于 2011-04-01T09:57:43.233 に答える