1

テーブルをロードするために Ajax 呼び出しを使用していますが、 Return として空白のページを取得しています。テーブルの Div にデータが表示されていません。

$('#groupTable').load(data); を試してみました うまくいきませんが、問題の解決を手伝ってください。

Ajax 呼び出し

$.ajax({
            type: "POST",
            url: url,
            dataType: "json",
            data: { groupNames: JSON.stringify(buttonId), page: JSON.stringify(page) },
            success: function (data) {
                debugger;
                $('#groupTable').html(data);
                updateGroupButtons();
            },
            error: function(request, status, error) {
                debugger;
                $('#groupTable').html(request.responseText);
                updateGroupButtons();
            }
        });

モデル

public interface IPagedList : IEnumerable
{
    int PageIndex { get; }
    int PageSize { get; }
    int TotalCount { get; }
    int TotalPages { get; }
    bool HasPreviousPage { get; }
    bool HasNextPage { get; }
    string GroupByNames { get; }
    Dictionary<string, IEnumerable> Group { get; }
}

コントローラ

public JsonResult GetGroups(string groupNames, int page = 1)
    {
        string[] groups=null;
        if (!string.IsNullOrEmpty(groupNames))
        {
            groups = new JavaScriptSerializer().Deserialize<string[]>(groupNames);
        }

        var model = _unitOfWork.MenuSetRepository.Get().ToPagedList(groups, page, 10);
        return  Json(model, JsonRequestBehavior.AllowGet);
      //  return PartialView("GetGroups",model);
    }

意見

<div id="groupTable">
 <table id="tbl" class="table">
            <thead>
                <tr>
                    @foreach (var property in Model.VisibleProperties())
                    {
                        <th draggable="true" ondragstart="drag(event)" id="@property.Name"> @property.GetLabel()</th>
                    }
                    <th>Actions</th>
                </tr>
            </thead>

            @if (string.IsNullOrEmpty(Model.GroupByNames))
            {
                int index = 0;
                <tbody>
                    @foreach (var item in Model)
                    {
                        ViewData[index.ToString()] = item;
                        <tr>
                            @foreach (var property in item.VisibleProperties())
                            {
                                <td>
                                    @Html.Display(index + "." + property.Name)
                                </td>
                            }
                            <td>
                                @{
                                    RouteValueDictionary routevalues = item.GetIdValue();
                                }

                                <li>@Html.ActionLink("Edit", "Edit", routevalues)</li>
                                <li>@Html.ActionLink("Details", "Details", routevalues)</li>
                                <li>@Html.ActionLink("Delete", "Delete", routevalues)</li>

                            </td>

                        </tr>
                        index++;
                    }
                </tbody>
            }
            </table>

    </div>
4

1 に答える 1

0

この行を変更してみましたか?

dataType: "json",

dataType: "html",

サーバーからどのような種類のデータを期待するかを AJAX 呼び出しに伝えます。純粋な HTML を返していると思いますか?

JSON 文字列を期待するように AJAX に指示すると、AJAX は自動的にそれを解析して、検出したデータ (通常は値の配列) に変換します。

于 2013-07-18T16:06:32.973 に答える