2009-03-31 1 views
2

asp.net mvc 사용하고 있기 때문에 jquery를 사용하여 autopostback 위조입니다. 그것은이 같은 선택 목록 (DropDownList로)에서 수행되는 것 :jquery 리디렉션 후 asp.net mvc 참조 페이지 찾기

$(document).ready(function() { 
    // autopostback for character drop down list 
    $('#playerCharacters').change(function() { 
     var charId = $('#playerCharacters option:selected').val(); 
     window.location = "/Character/SetDefault/" + charId; 
    }); 
}); 

지금은이를 사용하여 참조 URL에 액세스하려고/문자 /을 setDefault/[charID] (컨트롤러, 액션, ID)에 :

Request.UrlReferrer 

하지만 null이 올 것입니다. 왜 그런지에 대한 아이디어가 있습니까?

답변

1

window.location을 직접 설정하는 것은 사용자가 위치 표시 줄에 새 URL을 직접 입력하는 것과 똑같이 브라우저에서 처리됩니다. 이것은 리퍼러가 다른 페이지를 직접 참조하는 한 페이지 (예를 들어 링크를 통해)가 아니기 때문에 다른 리퍼러가 없음을 의미합니다 ...

가장 쉬운 방법은 귀하의 문제를 해결하는 방법입니다. 있는지 확인 목록 아래로 드롭 게시물 (또는 취득) 다음 자바 스크립트는이 같은 형태로 제출/문자 /을 setDefault & 수 있도록하는 형태 :

$('#playerCharacters').change(function() { 
    this.form.submit(); 
}); 

그런 다음 당신의을 setDefault 동작을 변경해야합니다을 MVC가 폼의 요청 값을 메서드에 제대로 바인딩 할 수 있도록 playerCharacters 매개 변수가 컨트롤러에 있어야합니다.