2014-03-12 60 views
0

我有以下細節的局部視圖,更新局部視圖阿賈克斯

_PartialTEST.cshtml

@model FreeLance.Web.Models.PArtialTESTModel 

@Html.RadioButtonFor(m => m.D1, "true", new { Name = "test1", @id = "g1", @checked = "true" }) @Html.LabelFor(m => m.MSGD1, @Model.V1) 
@Html.RadioButtonFor(m => m.D2, "false", new { Name = "test1", @id = "g2" }) @Html.LabelFor(m => m.MSGD2, @Model.V1) 
@Html.RadioButtonFor(m => m.D3, "false", new { Name = "test1", @id = "g3" }) @Html.LabelFor(m => m.MSGD3, @Model.V1) 

這是另一種觀點認爲使用

MainTEST.cshtml

<div id="partialDIV"> 
     @{ 
      @Html.Partial("_PartialTEST", Model) 
     }       
</div> 

現在,期間發生的事件,我嘗試使用AJAX來獲得新的價值現在

$.ajax({ 
       type: "GET", 
       url: href,    
       traditional: true, 
       async: false, 
       cache: false, 
       contentType: 'application/json', 
       data: { DID: DID }, 
       success: function (data) { 
        debugger; 
        $('#partialDIV').html(data); 
       }, 
       error: function (arg, data, value) { 

       } 
      }); 

雖然「數據」擁有所有的值,我無法得到渲染的局部視圖。任何幫助,我在這裏想念什麼?

+0

試試這個'數據:{「DID」:DID}' –

+0

感謝您的幫助,但是,我能擊中值DID,也是AJAX方法回到模型值的Ajax的成功部分,所以之後,我可能會錯過一些東西...... – TBA

回答

1

在服務器端使用此代碼來回報您的局部視圖::

public PartialViewResult MainTEST() 
    { 
     var model = new FreeLance.Web.Models.PArtialTESTModel(); 
     return PartialView("_PartialTEST.cshtml",model); 
    } 

,並在你的AJAX在客戶端做它的成功::一些變化

$.ajax({ 
      type: "GET", 
      url: href,    
      traditional: true, 
      async: false, 
      cache: false, 
      contentType: 'application/json', 
      data: { DID: DID }, 
      success: function (data) { 
       debugger; 

       $('#partialDIV').empty(); 
       $('#partialDIV').html(data); 
      }, 
      error: function (arg, data, value) { 

      } 
     }); 
+0

非常感謝,因爲@Jojy提到我也應該將數據類型添加爲HTML。 – TBA

2

通過添加數據類型爲「HTML」

$.ajax({ 
     type: "GET", 
     url: href,    
     traditional: true, 
     async: false, 
     cache: false, 
     contentType: 'application/json', 
     datatype : "html", 
     data: { DID: DID }, 
     success: function (data) { 
      debugger; 

      $('#partialDIV').empty(); 
      $('#partialDIV').html(data); 
     }, 
     error: function (arg, data, value) { 

     } 
    }); 
+0

謝謝我嘗試過那個兄弟:) – TBA

+0

返回的數據是什麼? – Jojy

+0

謝謝,在Rahul提到的我修改後的解決方案中,我確實需要提及數據類型爲HTML。謝謝 – TBA

1

你只是錯過了一個單一的參數的數據類型更改您的AJAX的查詢,即你必須指定數據類型作爲控制器功能的回報,因爲你是哪個類型期待partialview,你必須指定數據類型爲html。

.ajax({ 
      type: "GET", 
      url: href, 
      async: false, 
      cache: false, 
      contentType: 'application/json', 
      datatype:'html', 
      data: { DID: DID }, 
      success: function (data) { 
       debugger; 
       $('#partialDIV').html(data); 
      }, 
      error: function (arg, data, value) { 

      } 
     }); 

這樣就能夠解決您的問題

+0

感謝Hamid,也是從後面的代碼中,我返回了一個json,而不是一個Action結果。 – TBA