Rendar局部视图在另一个局部视图中与数据模型一起使用jQuery .Ajax函数

时间:2015-05-25 14:08:13

标签: ajax asp.net-mvc asp.net-mvc-partialview jquery-ajaxq

我正在研究MVC 5应用程序,我想使用jQuery ajax函数在另一个部分视图中使用模型数据渲染partialView。当调用javaScript函数时,它假设将所选元素的ID发送回工作正常的控制器,并返回带有部分视图以及不能使用以下代码的模型

<td>
   <a href="#" class="SearchUser_Icon Hyperlink_Text" onclick="load_getUserListByGroupID(this)" id=@item.GroupID></a>
</td>

JavaScript函数

function load_getUserListByGroupID(element)
{
    var selectedGroupID = element.id;

    alert(selectedGroupID);

    $.ajax({
        type: "POST",
        url: "/UserManagement/SearchUsersByGroupID/",
        dataType: "json",
        data: { 'GroupID': selectedGroupID },
        success: function (viewHTML) {
            alert("success");
            $("#userContentBlock").html(viewHTML);
        },
        error: function (errorData) { onError(errorData); }
    }).done(function (result) {
        alert("done!");
    });
}

<div id="userContentBlock"></div>

控制器方法

[HttpPost]
    public ActionResult SearchUsersByGroupID(string GroupID)
    {

        int intID = Convert.ToInt32(GroupID);

        var UsersListByGroupID = _userServices.GetUsersByGroupID(intID);

        return PartialView("GetUsersListByGroup_Partial", UsersListByGroupID );
    }

1 个答案:

答案 0 :(得分:1)

您正在返回HTML,同时期望在ajax调用中使用JSON。只需从设置中删除dataType: "json",一切都应按预期工作。

jQuery.ajax() dataType

  

您期望从服务器返回的数据类型。如果没有指定,jQuery将尝试根据响应的MIME类型推断它。