2017-05-24 2 views
0

스크립트의 URL을 사용하여 다른보기를 여는 매개 변수를 전달하는 모달을 만들고 있습니다. 그러나 빈 모달 팝업이 열리지 않으며 URL로 이동하지 않습니다. 그러나 두 가지 방법을 시도해 봤지만 어느 것도 효과가 없었습니다.모달 전달 매개 변수 (URL 포함)

모달 코드에 <div class="modal-body">을 입력하면 모달을 채 웁니다. 그러나 전달 된 매개 변수를 가져올 수 없습니다.

내 모달 버튼 -

<a href="#myModal" id="btnChange"class="btn btn-default" data-toggle="modal" data-id="@item.DeviceID">Change Location</a> 

내 모달 -

$('#btnChange').click(function (eve) { 
     var url = "/DeviceLocation/ChangeLocation/" + $(this).data("deviceID"); 
     $("#modal-content").load(url, function() { 
      $("#myModal").modal("show"); 
     }); 

     //$("#modal-content").load("/DeviceLocation/ChangeLocation/" + $(this).data("deviceID")); 
    }) 

내 컨트롤러 방법을 게시하도록 요청했다 - - 그럼 내 스크립트

<div id='myModal' class='modal fade' tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel"> 
<div class="modal-dialog"> 
    <div class="modal-content"> 
     <div class="modal-body"> 
      <div id='modal-content'> 

      </div> 
     </div> 
    </div> 
</div> 

I 있다 먼저 제대로 data-id에 접근하지 않는 뷰

[HttpGet] 
    public ActionResult ChangeLocation(int deviceID) 
    { 
     PopulateLocation(); 
     ViewBag.DeviceID = deviceID; 
     return View(); 
    } 
+0

스크립트가 외부 콘텐츠를로드하려고 할 때 콘솔에 오류가 표시됩니까? –

+0

내가 말할 수있는 오류 메시지가 없습니다. –

답변

1

에 액세스 할 때 내가 부르는 [HttpPost].

$('#btnChange').click(function (eve) { 
    var url = "/DeviceLocation/ChangeLocation?deviceID=" + $(this).data("id"); 
    $("#modal-content").load(url, function() { 
     $("#myModal").modal("show"); 
    }); 
}) 

또한 모델 바인더는 값을 매핑하는 매개 변수 이름과 일치합니다. 따라서 위와 같이 URL을 변경하십시오.

+0

여전히 비어 있습니다. 그것은 심지어 URL에 액세스하려고하지 않는 것 같습니다. –

+0

@EthelPatrick Pls가 컨트롤러 메소드를 게시합니다. 그것은 나를 위해 작동합니다. – User3250

+0

내 원래의 질문을 "/ DeviceLocation/ChangeLocation /"에서 호출하는'[HttpPost]'로 편집했습니다. –

1
$('#btnChange').on('click',function (eve) { 
$.ajax({ 
    type: "Post", 
    url: "/DeviceLocation/ChangeLocation?deviceID=$(this).attr('data-id')", 
    success: function(data){ 
    $("#modal-content").html(data); 
    $("#myModal").modal("show"); 
    } 
}) 

이 코드로 시도하면 도움이 될 것입니다.