以ajaxified方式加载部分视图

时间:2016-04-22 05:34:27

标签: jquery ajax asp.net-mvc-3 asp.net-mvc-4 kendo-ui

我正在尝试使用ajax方法加载partialview。因为我过去曾尝试过,但我不知道为什么这次没有加载内容和数据。我想知道我哪里错了。我怎么能纠正这个?

这是我的视图,在其名为“Add_Group”的div中有部分视图。

@(Html.Kendo().Window()
    .Name("AddEditGroupWindow")
    .Title("Edit Group")
    .Content(@<text><div id="Add_Group" style="display:none; width:100%;">
            @Html.Partial("~/Areas/Admin/Views/UserGroups/_AddGroupPartial.cshtml");
        </div> </text>)
                .Visible(false).Width(1000).Height(300))

我使用post获取数据后如下所示,我正在尝试加载该patial视图 下面:

$.post("/UserGroups/getGroupDetail", { "groupId": id }, function (response) {
            $("#Add_Group").html(response.Data);
            $("#AddEditGroupWindow").data("kendoWindow").open();
            $("#Add_Group").show();
        });
控制器中的

如下所示:

 public ActionResult GetGroupDetail(string groupId)
        {
            var data = string.Empty;
            UserGroupRoleModel objmodel = new UserGroupRoleModel();
            var groupEntity = this._userGroupServices.GetGroupDetail(Convert.ToInt32(groupId));
            return this.Json(new { Data = groupEntity });
        }

1 个答案:

答案 0 :(得分:0)

您通过post方法返回json对象,而不是html,因此当您调用

$("#Add_Group").html(response.Data);

它什么都不显示,因为Data是json而不是html

您的GetGroupDetail需要返回html才能显示。

根据您的代码,我假设您从GetGroupDetail返回的是部分视图的模型(~/Areas/Admin/Views/UserGroups/_AddGroupPartial.cshtml),将您的GetGroupDetail更改为返回部分视图< / p>

public ActionResult GetGroupDetail(string groupId)
        {
            var data = string.Empty;
            UserGroupRoleModel objmodel = new UserGroupRoleModel();
            var groupEntity = this._userGroupServices.GetGroupDetail(Convert.ToInt32(groupId));
            return PartialView("~/Areas/Admin/Views/UserGroups/_AddGroupPartial.cshtml", roupEntity);
        }