ASP.NET MVCプロジェクトの[CompareAttribute]
をチェックしていましたが、この宣言がMVC 4バージョン5.2.3.0で正しく動作していないことに気付きました。 DataAnnotationsライブラリのランタイムバージョンはv4.0.30319です。CompareAttribute常に例外がValidationResultに一致しません
問題ここでは、私は、これらの値とEditActionにEditViewを投稿するとき、EmailAdress = [email protected]
、ConfirmEmail = [email protected]
[CompareAttribute]
このValidationError
「EmailAdressとConfirmEmailはと一致していない」スローということです。しかし、これらの2つの値はお互いに同じであることがわかります。それはバグか、何かを誤解することができますか?
のコードを見てみましょう:
マイ部分Employeeクラス:
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
using work18.Models;
namespace work18.Models
{
[MetadataType(typeof(EmployeeMetaData))]
public partial class Employee
{
[CompareAttribute("EmailAdress")]
public string ConfirmEmail { get; set; }
}
public class EmployeeMetaData
{
}
}
HttpPostの要求に応答するコントローラ内の編集機能:
public ActionResult Edit([Bind(Include = "ID,FullName,Gender,Age,
HireDate,EmailAdress,Salary, PersonalWebSite")] Employee employee)
{
if (ModelState.IsValid)
{
db.Entry(employee).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(employee);
}
だからあなたはどんな知識を持っていますまたはこの問題に関する助言
EDIT問題が。これは非常に非常に愚かな間違いです
を解決しました。編集アクションメソッドでコードを慎重に検索すると、インクルードプロパティにエラーが発生した方法のConfirmEmail
がないことがわかります。