使用 jQuery .Ajax 函数在另一个局部视图中渲染局部视图以及数据模型

Rendar partial view in another partial view along with data model using jQuery .Ajax function

我正在开发 MVC 5 应用程序,我想使用 jQuery ajax 函数在另一个带有模型数据的局部视图中呈现局部视图。当调用 javaScript 函数时,它假设将所选元素的 ID 发送回工作正常的控制器,并在 return 中将部分视图与不工作的模型一起从以下代码

<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 );
    }

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

jQuery.ajax() dataType:

The type of data that you're expecting back from the server. If none is specified, jQuery will try to infer it based on the MIME type of the response.