1

我正在开发 MVC 5 应用程序,我想使用 jQuery ajax 函数在另一个带有模型数据的局部视图中呈现局部视图。当调用 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 );
    }
4

1 回答 1

1

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

jQuery.ajax() 数据类型

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

于 2015-05-25T14:15:50.820 回答