2012-05-08 3 views
0

내 dev에 내 사이트의 URL은 "http : // localhost : portname/home"이고 로그인 후 오른쪽 상단의 "Hello"를 클릭하면 다음 jQuery 코드를 사용하여 : "/ 계정/GetTabContent/TAB1 localhost"를JQuery MVC4에서 절대 경로를 가져 오지 못했습니다.

:

var url = "/Account/GetTabContent/tab1"; 
var targetDiv = $('#div1'); 
$.get(url, null, function (result) { 
    $(targetDiv).html(result); 
}); 

이 내 상자에 잘 작동, 그것은 나를에 소요되는 경로입니다. 우리는 우리의 테스트 서버에 배포 할 때 실제 웹 사이트의 경로는 다음과 같습니다

http://server name/website folder/home 

내가 로그인 후 이름을 클릭하면 이제 여전히

http://server name/Account/GetTabContent/tab1 

에 저를 받아 나는 404 오류 . 강제로 어떻게해야합니까?

http://server name/website folder/GetTabContent/tab1 

제 질문에 도움이 되었기를 바랍니다. 이 나던 경우 알려 주시면보다 명확하게 드리겠습니다

** * *편집* ****

우리는 다음을 변경하여 문제를 해결 확인 코드 (URL에서 컨트롤러 이름을 제거하고 다른 컨트롤러의 작업을 호출 할 때 이것이 어떻게 될지 궁금 함)

**var url = "GetTabContent/tab1";** 
var targetDiv = $('#div1'); 
$.get(url, null, function (result) { 
$(targetDiv).html(result); 
}); 
+0

이것은 <웹 사이트 폴더>에 대한 가상 디렉터리 아래에서 응용 프로그램을 실행해야하는 IIS 문제인 것 같습니다. – Tejs

+0

내가 무슨 뜻인지 잘 모르겠다. <웹 사이트 폴더>는 의 가상 디렉터리입니다. –

답변

0

많은 프레임 워크에서 동일한 문제가 있습니다. 내 솔루션은 폼의 동작을 mvc가 일반적으로 사용하는 echo Form:open('action');과 비슷한 것을 사용하기 때문에 원하는 위치로 설정합니다. PHP는 프레임 워크하지만 ID는 내 jQuery로 내가 일반적으로 제가 위에서이 대신 할 코드에서, 그래서 URL 도우미를 사용하여 경로를 설정하는 것이 좋습니다

$.post($(this).attr('action'), $(this).serialize(), function and so on 
1

을 사용할 수 있도록 ASP를 사람이 비슷한을 제공하는 가정


var url = '@Url.Action("GetTabContent", "Account", new { id = "tab1" })'; 
var targetDiv = $('#div1'); 
$.get(url, null, function (result) { 
    $(targetDiv).html(result); 
}); 

URL을 지정할 수있는 곳 (예 : 스크립트 태그 등)에서 URL을 지정하십시오 물결표와, 예를 들어 너무 :


<script src="~/Scripts/foo.js"></script> 

대신 위치로 상대 또는 악화 절대 경로를 지정하는

(이것은 MVC 4 가정,하지만 내가 생각 태그가 있기 때문에이 : 공정 것) 당신을 배포시 변경할 수 있습니다.

관련 문제