2011-09-30 5 views
1

마스터 페이지의 링크에서 Ajax 호출을 가져 오려고합니다.MVC 현재 컨트롤러와 관련된 Ajax 작업

그래서 현재 페이지/컨트롤러와 관련된 동작 만 지정하고 싶습니다.

내가 어떤 컨트롤러의 "저장"조치를 호출 할

$.ajax({ 
     url: '/Save', 
     type: "GET", 
     // .. etc 
}); 

페이지를 제공 즉. 나는 이것이 곧바로 효과가있을 것이라고 생각했지만 그것이 나타나지 않았다. 우아한 솔루션이 있습니까? 똑바로보기에이있어 경우

답변

7

, 당신은

$.ajax({ 
     url: '@Url.Action("Save")', 
     type: "GET", 
     // .. etc 
}); 

그렇지 않으면 할 수있는, 그리고 자바 스크립트는 외부 파일에, 당신은 data-? HTML5 속성으로 요소에 Url.Action 생성 URL을 첨부 할 수 있습니다. 그리고 ajax 호출을하기 전에 동적으로 속성 값을 읽으십시오. asp.net의 MVC에서

<input type="text" data-save-action-url="@Url.Action("Save")" /> 

당신이해야 결코 하드 코드 된 URL 년대. 항상 Url.Action을 사용하십시오. 그것은 URL을 생성 할 때 귀하의 라우팅 구성을 검사하고, 그것에 따라 올바른 값을 항상 반환합니다. 하드 코드를하면 라우팅 구성을 변경할 때 응용 프로그램을 사용할 수 없게됩니다. 또한 응용 프로그램의 모든 단일 URL을 수동으로 변경해야합니다.

+0

... 또는 R #을 설치하십시오. :) – bzlm

+0

감사합니다. – fearofawhackplanet

+0

@fearofawhackplanet 환영합니다 – archil

관련 문제