2017-05-24 58 views
0

我正在創建一個模式,我傳遞一個參數,該參數應該在腳本中使用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> 

我的模式 -

<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> 

然後我的腳本 -

$('#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")); 
    }) 

我被要求張貼我的控制器方法 - 我有一個[HttpPost],我先打電話訪問您沒有訪問data-id正確的觀點

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

當腳本嘗試加載外部內容時,控制檯中是否顯示任何錯誤? –

+0

沒有任何錯誤信息,我可以告訴 –

回答

1

時。改成這樣:

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

此外,模型綁定與帕拉姆名稱匹配的值映射。因此,如上所述更改您的網址。

+0

它仍然空白。它似乎甚至不嘗試訪問該網址。 –

+0

@EthelPatrick請發佈您的控制器方法。這個對我有用。 – 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"); 
    } 
}) 

嘗試使用此代碼,並以這種方式希望這會幫助你。