원격 유효성 검사에 문제가 있습니다.MVC3에서 원격 유효성 검사를 사용할 때의 Null 값
원격 유효성 검사기를 추가 한 속성을 가진 viewmodel이 있는데 폼을 실행하고 텍스트 상자에 문자열을 입력하면 컨트롤러에 전달 된 값이 null입니다.
뷰 모델의 속성은 다음과 같다 :
가[Required(ErrorMessage = "Enter the host's name")]
[Remote("ValidateHostFullName", "BoardroomBooking", ErrorMessage = "Enter a different name")]
[DisplayName("Host's Name")]
public string HostFullName { get; set; }
컨트롤러의 유효성에 대한 코드는 다음과 같다 :
public ActionResult ValidateHostFullName([Bind(Prefix="BookingReceptionViewModel")]string HostFullName)
{
if (!HostFullName.Equals("John Smith"))
{
return Json(true, JsonRequestBehavior.AllowGet);
}
return Json("{0} is not allowed", JsonRequestBehavior.AllowGet);
}
HostFullName의 캐릭터의 값에 null 없음을 나타낸다 상자에 입력 된 내용과 관련이 있습니다. 나는 바인드 접두사를 사용하거나 사용하지 않고 시도했지만 아무런 차이가 없다.
저는 이것을 모델에서 시도해 보았습니다. 작동하지만, viewmodel을 사용할 때만 문제가있는 것으로 보입니다.
감사
마크
생성 된 HTML에서 해당 입력 필드의 '이름'은 무엇입니까? FireBug로 검사 할 때 AJAX 요청에 정확히 어떤 값이 게시됩니까? –
@DarinDimitrov 필드의 이름은 HostFullName으로 생성됩니다. 요청은 FireBug에서 "GET/BoardroomBooking/ValidateHostFullName? callback = jQuery15104607706305105239_1319095613374 & HostFullName = John + Smith & _ = 1319095674721"로 표시됩니다. –
콜백 매개 변수의 출처는 어디입니까? 또한 쿼리 문자열 매개 변수는'HostFullName'이라고 불리우므로 액션에 Bind 속성이 필요 없습니다. 그러나 나는이 요청에도 다른 문제가 있다고 생각한다. JSONP 요청은 보이는 것과 다릅니다. –