使用Ajax更新部分视图

时间:2014-03-12 06:22:33

标签: jquery ajax asp.net-mvc partial-views

我有一个部分视图,其中包含以下详细信息,

_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) {

                }
            });

现在虽然“数据”包含所有值,但我无法获取部分视图。任何帮助,我在这里缺少什么?

4 个答案:

答案 0 :(得分:2)

通过将数据类型添加为&#39; html&#39;

来更改您的AJAX查询
 $.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) {

        }
    });

答案 1 :(得分: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) {

            }
        });

答案 2 :(得分:1)

答案 3 :(得分:1)

您错过了单个参数数据类型,即您必须将数据类型指定为控制器函数返回的类型。由于您需要部分查看,因此必须将数据类型指定为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) {

            }
        });

这可以解决您的问题