2016-08-08 2 views
1

MVC를 처음 사용했습니다. 버튼 클릭시 뷰에서 컨트롤러로 매개 변수를 전달해야하는 상황이 발생했습니다 (버튼이 부분 뷰에 있음). 그러면 동일한 페이지에서 다른 부분 뷰가 렌더링됩니다.MVC에서 부분보기에있는 버튼 클릭에 대해 ajax를 사용하여 Action 메서드를 호출하는 방법은 무엇입니까?

단계 다음 :

  1. 가 나는 부분보기의 버튼 JQuery와 버튼 클릭 이벤트를 사용했다.
  2. 내보기에서 컨트롤러로 매개 변수를 전달하기 위해 ajax 호출을 만들었습니다.

다음 내 코드입니다 :

$(document).on("click", "#btninPartialView", function(e){ 
    var data = $("txtinPartialView").val(); 
    $("#mainPageContainer").load("/Controller/Action", data, function(){ 
     $.ajax({ 
      //url: @Url.Action("Action", "Controller"), 
      type: GET, 
      data: { 
       id: data 
      }, 
      success: function(){ 
      } 
      error: function(){ 
      } 
     }) 
    }  
}) 

문제 : 문제는 내가 작업 방법으로 수신하고있어 데이터가 null입니다 것입니다.

내가 누락 된 경우 알려주십시오.

미리 감사드립니다.

+1

귀하의 컨트롤러의 메소드 코드를 제공하십시오 – Nigrimmist

+0

버튼을 클릭 한 후 크롬 개발자 도구 콘솔 탭에서 오류가 있는지 확인하십시오. ajax 호출이 성공했는지 여부를 확인하지 않으면 네트워크 탭을 점검하십시오. 성공하지 못했다면 오류 .. – CNKR

+0

왜로드 및 아약스 호출을 모두 사용하고 있습니까 –

답변

1
$(document).on("click", "#btninPartialView", function(e){ 
var data = $("txtinPartialView").val(); 

$.ajax({ 
    url: "/Controller/Action", 
    type: GET, 
    data: { 
     id: data 
    }, 
    success: function(result){ 
$("#mainPageContainer").html(result); 
    } 
    error: function(){ 

}) 
}) 

이 일을해야으로 데이터를 전달해야

public ActionResult Action1(string name) 

경우.

1

귀하의 조치 방법이 수락하는 인수를 확인하십시오. 예를 들어

서명이 다음

var data = { name : $("txtinPartialView").val() } 
+0

예, 동일한 서명입니다. 내가 사용한 서명은 다음과 같습니다 : public ActionResult Action (string id) {} ​​ – user5627316

0

문제는 당신이 JQuery와 아약스 및로드 기능을 모두 혼합되어 있다는 것입니다,로드 기능은 무대 뒤에서 아약스 호출을 전송, 그래서 당신은 그들 중 하나, 둘, 사용과 같이 시도해야합니다

$(document).on("click", "#btninPartialView", function(e){ 

     $.ajax({ 
      url: '@Url.Action("Action", "Controller")', 
      type: GET, 
      data: { 
       id: $("txtinPartialView").val() 
      }, 
      success: function(response){ 
       $("#mainPageContainer").html(response); 
      }, 
      error: function(){ 
      } 
     }); 
}); 
+0

@ Url.Action을 사용할 때, 그것은 저에게는 효과적이지 않지만 url : "/ controller/action"은 완벽하게 작동했습니다. 고마워요. – user5627316

관련 문제