Ajax 调用未被推送

本文关键字:调用 Ajax | 更新日期: 2023-09-27 18:32:04

我遇到了一个非常奇怪的问题。我的 ajax .post 调用没有被推送,我不知道为什么。它在另一个视图中工作得很好,但这个视图不起作用。我一直在尽最大努力弄清楚,但我真的需要尽快完成这项工作以进行演示。任何帮助都会很棒!

@model ProjectCrux.Models.QuestionLinkToHashtag
@{
    ViewBag.Title = "Details";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
<script src="~/Scripts/jquery-2.1.1.min.js"></script>
<h2>Details</h2>
@{
    var info = ViewBag.SortingPagingInfo;
}
@using(Html.BeginForm("Details", "Question", FormMethod.Post)){
@Html.Hidden("SortField", (string)info.SortField)
@Html.Hidden("SortDirection", (string)info.SortDirection)
@Html.Hidden("PageCount", (int)info.PageCount)
@Html.Hidden("PageSize", (int)info.PageSize)
@Html.Hidden("CurrentPageIndex", (int)info.CurrentPageIndex)
<div>
    <h4>Question</h4>
    <hr />
    <dl class="dl-horizontal">
        <dt>
            @Html.DisplayNameFor(model => model.Question.Student.firstName)
        </dt>
        <dd>
            @Html.DisplayFor(model => model.Question.Student.firstName)
        </dd>
        <dt>
            @Html.DisplayNameFor(model => model.Question.question)
        </dt>
        <dd>
            @Html.DisplayFor(model => model.Question.question)
        </dd>
    </dl>
</div>
    <div id="Answers">
        <table border="1" cellpadding="10">
            @foreach (var item in ViewBag.answers)
            {
                <tr>
                    <td>@item.answer</td>
                    <td>@item.postDate</td>
                </tr>
            }
            <tr>
                <td colspan="4">
                    @for (var i = 0; i < info.PageCount; i++)
                    {
                        if (i == info.CurrentPageIndex)
                        {
                            <span>@(i + 1)</span>
                        }
                        else
                        {
                            <a href="#" data-pageindex="@i"
                               class="pager">@(i + 1)</a>
                        }
                    }
                    <script>
                        $(document).ready(function () {
                            $(".pager").click(function (evt) {
                                var pageindex = $(evt.target).data("pageindex");
                                $("#CurrentPageIndex").val(pageindex);
                                evt.preventDefault();
                                $("form").submit();
                            });
                        });
                    </script>
                </td>
            </tr>

        </table>
        <div class="posted">
            @Html.EditorFor(model => model.Answers.answer, new { htmlAttributes = new { @class = "answerswerBox" } })
            <button type="button" id="button">Post</button>
            <script>
                $("button").click(function () {
                    $(".posted").hide();
                    $.post("Create", $(".posted").serialize(), function (data, status) {
                        alert("Data: " + data + "'nStatus: " + status);
                    });
                    $(".posted").show(1000)
                });
            </script>
        </div>


    </div>
<p>
    <!--Html.ActionLink("Edit", "Edit", new { id = Model.questionId }) |-->
    @Html.ActionLink("Back to List", "Index")
</p>
}

我实现的显示/隐藏功能只是为了检查脚本是否正在执行,确实如此。

Ajax 调用未被推送

你的意思是它不起作用??

您需要在 Web 浏览器中打开此页面,按 F12 .> 打开开发人员工具,转到网络选项卡,并仅过滤掉 XHR 请求。 然后单击该按钮并找到正在发送的请求。 如果请求出现任何问题,.Net 框架将响应 HTML 错误页面。 只要实际上有一个控制器,请求将发送到您,您就会得到某种类型的响应

我个人更喜欢