整数の追加フィールドを使用しようとすると、検証が機能しない理由がわかりません。
これが私のコードです(コードの一部は省略されています):
モデル
public class PersonViewModelBase
{
public int PersonID { get; set; }
[Required]
[StringLength(15, MinimumLength = 3)]
[Remote("Checkusername", "Utilities", AdditionalFields = "PersonID")]
[RegularExpression(@"(\S)+", ErrorMessage = "White space is not allowed.")]
public string UserName { get; set; }
public string Password { get; set; }
public string LastName { get; set; }
コントローラー(リモート)
public JsonResult Checkusername(string username, int PersonID)
{
//var user = studentRepository.GetStudents()
// .Where(a => a.UserName == username.Trim())
// .Where(b => b.PersonID != personID);
var user = studentRepository.GetStudents().Where(a => a.UserName == username.Trim());
if (user.Count() > 0)
{
return Json(string.Format("{0} is not available.", username),
JsonRequestBehavior.AllowGet);
}
else
{
return Json(true, JsonRequestBehavior.AllowGet);
}
}
このリモート検証は呼び出されていません。ただし、追加フィールドを文字列に変更しようとすると、アプリケーションはリモート検証を呼び出しますが、PersonID は整数であるため「未定義」になります。