2014-12-01 1 views
2

MVC5에서 응용 프로그램을 개발했습니다. 코드 아래의보기에서 링크의 onclick을가 호출됩니다 - 내가 직면하고

// Code in View File 

$.post('../ControllerName/FunctionName', //this is your url 
      { 
       id: image, 

      }, function (data) { 
       alert("Successfully published"); 
      } 
      ).error(function() { 
       alert("Failed to publish"); 
      }); 


//Code in Controller 

[HttpPost] 
    public void ISPPDF(string id) 
    {} 

문제는 내가 그렇습니다 서버에 내 응용 프로그램을 호스팅 후에 내가 시각적 studio.However를 통해 실행할 때 ISPPDF() 함수가 호출됩니다이다

내가 또한 경로를 아래의 방법하지만 행운을 지정 시도 - 내가 지정한 경로에 어떤 문제가있는 느낌 .. 함수를 호출하는

보이지!

/ControllerName/FunctionName 
ControllerName/FunctionName 

어떤 도움을 주시면 감사하겠습니다.

감사합니다.

+0

로컬 컴퓨터에 IIS를 설치하고이를 통해 응용 프로그램을 실행 해보십시오. 로컬에서 문제를 복제 할 수 있습니다. IIS의 VS 구성이 "실제"IIS와 다르다는 것을 알고 있습니다. – user1666620

+2

링크를 생성하려면'Url.Action'을 사용해야합니다. –

+1

브라우저에서 어떤 오류가 발생합니까? '@ Url.Action ("ActionName", "ControllerName")' ' –

답변

0

게시물 방법으로이 작업을 시도하는 것은보기 파일에

$ .post ('../ FUNCTIONNAME', {ID : 이미지,}, 기능 (데이터) {경고() "성공적으로 게시";}) .error (function() {alert ("게시 실패");});

+0

안녕하세요. 많이 감사합니다. 작동했습니다! –

+0

이 솔루션은이 특정 사례에 대한 작업을 완료 할 수 있지만 URL 값을 하드 코딩하지 않는 것이 좋습니다. 대신 내 대답에 표시된대로'Url.Action'을 사용하십시오. –

8

절대 URL을 MVC로 하드 코딩해야합니다.

대신 @Url.Action을 사용하십시오.

$.post('@Url.Action("FunctionName", "ControllerName", new { id = Model.ID })', //this is your url 


을 그리고 나는이 추천 이유를 두 가지 중요한 이유가있다 : 당신이 매개 변수를 전송해야하는 경우

$.post('@Url.Action("FunctionName", "ControllerName")', //this is your url 

, 당신은 다음과 같이 그것을 오타의

1. 기회는 URL은 거대합니다. 이 질문은 OP가 URL을 잘못 입력했음을 증명합니다.
2. Url.Action은 경로를 고려합니다. 경로가 변경되면 Url.Action은 올바른 URL을 작성하는 방법을 알게됩니다. 이렇게하면 하드 코딩 된 값을 모두 변경하기 위해 여러보기를 거칠 필요가 없습니다.

관련 문제