2014-03-12 61 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