2010-12-01 26 views
0

我与使用远程属性数据注解的类:ASP.Net MVC3远程数据注释不工作

public class Person 
{ 
    [Remote("NameValidation","Validation", ErrorMessage = "Field is Invalid", Fields = "LastName")] 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
} 

在ValidationController:

public ActionResult NameValidation(string FirstName, string LastName) 
    { 
     bool isNameValid = true; 

     if (FirstName.Contains("John") && LastName.Contains("Doe")) 
     { 
      isNameValid = false; 
     } 

     return Json(isNameValid, JsonRequestBehavior.AllowGet); 
    } 

在视图我有:

@{Html.EnableClientValidation(); } 
@using (Html.BeginForm()) 
{ 
    @Html.EditorFor(x => x.FirstName) @Html.ValidationMessageFor(x => x.FirstName) 
    @Html.EditorFor(x => x.LastName) @Html.ValidationMessageFor(x => x.LastName) 

    <input name="finishButton" type="submit" id="button" > 
} 

如果我还添加了如下所示的Required属性,NameValidation才会被调用:

public class Person 
{ 
    [Required] 
    [Remote("NameValidation","Validation", ErrorMessage = "Field is Invalid", Fields = "LastName")] 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
} 

如何让远程验证工作而无需进行必需的验证?

回答

0

更新到MVC3 RC2。我只是尝试没有Required属性。它的工作。 我发现一件奇怪的事情是,有时候每次按键都会触发远程验证,其他时间会发生变化