2016-04-11 29 views
0

我工作的一個MVC應用程序,試圖填補從服務器獲取數據的引導模式窗體,要做到這一點,我想做到以下幾點:的jQuery的getJSON數據轉換成模態形式的div

1)我加載了一個帶有多個ID的網格,每個ID都帶有一個javascript onclick函數。

2)該函數獲取ID號,並向服務器發送ajax請求,以獲取相關數據和ID作爲參數。

3)生成的JSON應該顯示在模態體中。

到目前爲止,我得到了1和2項的工作,但我似乎無法讓模態窗體顯示我從服務器檢索到的數據。我試着改變$ .aJax的$ .getJSON,並用段落或頭部改變div標籤(假設一個字符串例如適合),但沒有運氣。我甚至嘗試用警報替換div填充方法,只是爲了查看結果json,但也沒有奏效。

這是我的代碼:

視圖(僅模態部分):

<div id="modalZoomOperaciones" class="modal fade" role="dialog" tabindex="-1" data-url='@Url.Action("OperacionDetalle")'> 
<div id="contenido"> 
    <div class="modal-content"> 
     <div class=" modal-header"> 
      <button type="button" class="close" data-dismiss="modal">&times;</button> 
      <h4 class="modal-title">@Global.Details</h4> 
     </div> 
     <div class="modal-body"> 
      <div id="response"></div> 
     </div> 
     <div class="modal-footer"> 
      <button type="button" class="btn btn-default" data-dismiss="modal">@Global.BackToList</button> 
     </div> 
    </div> 
</div> 

JS功能:

function showDetails(oper_numero) { 

    var url = $('#modalZoomOperaciones').data('url'); 

    $.getJSON({ 
     url: url, 
     data: { operacion: oper_numero }, 
     success: function(data){ 
      $("#response").html(data); 
     } 
    }); 

    $("#modalZoomOperaciones").modal({ backdrop: "static" }); 
} 

控制器(我知道它有unnecesary代碼和冗餘,這是一個測試環境,而不是實際的開發地點):

public JsonResult OperacionDetalle(int operacion) 
    { 
     IEnumerable<OperacionesTestViewModel> datos = UnitOfWork.ExecuteSpScript.spOperacionesDetalleTest(operacion); 
     OperacionesTestViewModel datos1 = datos.FirstOrDefault(); 
     return Json(datos1); 
    } 

任何幫助將不勝感激。

+0

成功回調得到執行嗎?嘗試添加一個console.log()來查看它是否被調用。如果它確實被調用,那麼將數據輸出到控制檯。 – trans1st0r

+0

非常感謝。這個問題涉及到MVC安全性,我得到了這些數據,但我無法將它帶到客戶端。 – Rambo3

回答

0

如果有人遇到這種情況,爲$ .ajax類型'POST'更改$ .getJSON不是一個解決方案,因爲不涉及任何事務。

由於MVC免受特定類型的JSON請求攻擊的應用程序中,有一些已經在控制器動作添加:

的這個代替:

return Json(data); 

它必須是像這樣:

return Json(data, JsonRequestBehavior.AllowGet);