2011-01-05 7 views
0

나는 스크립트가 :

<script type="text/javascript"> 
$(document).ready(function(){ 
    $("#PrincipleMember_IdNumber").autocomplete({ 
     close: function(event, ui) { 
      var member = {}; 
      member.IDNumber = $("#PrincipleMember_IdNumber").val(); 
      $.getJSON("<%= Url.Action("MemberLookup","Member") %>", member, function(data) { 
       $("#PrincipleMember_Firstname").val(data.FirstName); 
      }); 
     } 
    }); 
}); 

양식 :

<fieldset class="fieldsetSection"> 
<legend>Principle Member</legend> 
<table> 
    <tr> 
     <td width="150px" class="editor-label"><%=Html.LabelFor(l=>l.PrincipleMember.IdNumber)%></td> 
     <td class="editor-field"><%= Html.AutoCompleteTextBoxFor(i => i.PrincipleMember.IdNumber, "IdNumber", "AutoComplete")%></td> 
     <td><%=Html.ValidationMessageFor(v => v.PrincipleMember.IdNumber)%></td> 
    </tr> 
    <tr> 
     <td width="150px" class="editor-label"><%=Html.LabelFor(l=>l.PrincipleMember.Firstname)%></td> 
     <td class="editor-field"><%=Html.TextBoxFor(t => t.PrincipleMember.Firstname)%></td> 
     <td><%=Html.ValidationMessageFor(v => v.PrincipleMember.Firstname)%></td> 
    </tr> 
</table> 

그리고 마지막으로 JSON 결과 조치 :

public JsonResult MemberLookup(Member member) 
{ 
    member = _memberRepository.GetMember(member.IDNumber); 
    return this.Json(member); 
} 

내 JSON 결과는 완벽하게 실행하고 난 결과를 얻을 수 있지만, 어떤 이유로 스크립트의이 부분은 실행되지 않습니다 $("#PrincipleMember_Firstname").val(data.FirstName); 내가 alert();로 대체하려고했습니다

,하지만 너무 실행되지 않습니다.

내가 여기서 잘못하고있는 것을 누구든지 볼 수 있습니까?

+0

당신이 오류에 대한 JS 콘솔을 확인 했 : –

+1

파이어 버그를 사용해보십시오. 그것은 js에 오류가 있는지 또는 js get이 실행될 때 오류가 있는지를 알려줍니다. ajax 호출에서 얻은 응답을 모두 확인할 수 있습니다. –

+0

방화범이 내게 알려줍니다 : GET 요청에서 중요한 정보가 타사 웹 사이트에 공개 될 수 있기 때문에이 요청이 차단되었습니다. GET 요청을 허용하려면 JsonRequestBehavior를 AllowGet으로 설정하십시오. –

답변

0

나는 나의 JSON 결과를 변경했다?
1

데이터 개체에 FirstName 속성이 없을 수도 있으므로 서버 측 메서드가 성공적으로 실행되고 있다고 가정하고 200 OK을 반환합니다.

Firefox를 사용하는 경우 FireBug를 가져 와서 데이터 개체의 값을 확인하십시오. 당신이 크롬을 사용하는 경우 - 개발자 콘솔을 확인

console.log(data);$("#PrincipleMember_Firstname").val(data.FirstName); 교체 (Ctrl 키를 + + 내가 시프트)와 (불을 지르고의 콘솔 탭을 자바 스크립트 콘솔을 확인하거나 크롬의 개발자 콘솔 -.> 콘솔 탭 당신은 할 수 있어야한다 개체 및 모든 JS 오류가 당신이있을 것을 볼

을 개체가 미세 반환하면 -. 개체가 콘솔에없는 경우 console.log(data.FirstName);

시도 -. 다음 성공 방법은 아마도 실행되지 않는다 서버 측 호출이 성공적이지 않습니다. 호출을 $.ajax 호출로 바꾸고 오류 이벤트를 사용하여 잘못된 것을 확인하십시오.

또한 console.log가 undefined를 반환하면 메서드 호출 결과가 유효한 json 객체를 반환하지 않았을 가능성이 높습니다.

return this.Json(member, JsonRequestBehavior.AllowGet);