【问题标题】:After 1st json call working but 2nd json call not working till page get refresh在第一个 json 调用工作但第二个 json 调用在页面刷新之前不起作用
【发布时间】:2018-05-12 08:03:36
【问题描述】:

您好,我正在一个应用程序中工作,并且我正在使用 json 调用来拒绝请求。 现在,当我要逐个拒绝请求时,我发现在单个页面上,当我拒绝一个请求时它会被拒绝,但是当我要拒绝第二个请求时,它并没有拒绝该请求。

如果我需要在这种情况下拒绝第二次请求,我需要刷新该页面,然后在我能够拒绝第二次请求之后。

下面是截图

我的查看页面代码。

在脚本标签中

function declinestudentrequest() {
    var StudentRequestId = document.getElementById('hdstatusstudentrequestid').value;
    var StatusId = document.getElementById('hdstatusdecline').value;
    $.ajax({
        url: '/Account/declinestudentrequest',
        type: 'GET', // You can use GET
        data: { 'StudentRequestId': StudentRequestId },
        dataType: "json",
        context: this,
        cache: false,
        success: function (data) {
            if (data == "Success") {
                $("#GetStatusMessage_" + StudentRequestId).css({ "display": "block" });
                $('#div_p_' + StudentRequestId).text("You have decline for student Response");
                $("#GetReqdec_" + StudentRequestId).hide();
            }
            else { alert('Some Error'); }
        },
        error: function (request) {
            console.log(request);              
        }
    });
}

设计

  @if (Convert.ToInt16(item.StatusId) == 1)
{
    <div id="GetStatusMessage_@item.StudentRequestId" style="display:none;">
        <p id="div_p_@item.StudentRequestId">Waiting for student Response.</p>
    </div>
    <div id="GetReqdec_@item.StudentRequestId">
        @using (Html.BeginForm("TutorDashboard", "AccountController"))
        {             
            @Html.TextAreaFor(model => item.Description, new { @class = "form-control", @placeholder = "Please describe how you can help.", @id = "txtdescription" })             
            <br />
            <span>Hourly rate :</span>
            @Html.EditorFor(model => item.Ratedummy, new
        {
            htmlAttributes = new { @class = "form-control", placeholder = "Price", maxlength = 10, id = "txtrate" }
        })              
            <p class="text-right">
                <input type="hidden" id="hdstatusrequest" name="hdstatusrequest" value='2' />
                <input type="hidden" id="hdstatusdecline" name="hdstatusdecline" value='3' />
                <input type="hidden" id="hdstatusstudentrequestid" name="hdstatusstudentrequestid" value='@item.StudentRequestId' />              
                <input type="button" onclick="return declinestudentrequest();" class="btn btn-default btn-hire decline_btn" value="Decline" />
            </p>
        }
    </div>
}

我的帐户控制器侧代码

    public ActionResult declinestudentrequest(string StudentRequestId)
    {
        string result = "";
        try
        {
            if (User.Identity.IsAuthenticated)
            {                    
                TutorStudentRequest tsr = new TutorStudentRequest();
                tsr.StudentRequestId = Convert.ToInt32(StudentRequestId);
                tsr.Rate = 0;                
                tsr.StatusId = 3;                 
                db.TutorStudentRequests.Add(tsr);
                db.SaveChanges();
                result = "Success";
            }
            else
            {
                return RedirectToAction("Index", "Home");
            }
        }
        catch (Exception ex)
        {
            result = "Error";
            throw ex;
        }
        return Json(result, JsonRequestBehavior.AllowGet);
    }

为什么我的第二次拒绝请求不起作用?

【问题讨论】:

    标签: javascript jquery json asp.net-mvc asp.net-mvc-4


    【解决方案1】:

    问题已解决,因为 id 出现冲突问题,所以我尝试了类似的方法。

    在查看页面上我做了更改

     <input type="hidden" id="hdstatusstudentrequestid_@item.StudentRequestId" name="hdstatusstudentrequestid" value='@item.StudentRequestId' />              
     <input type="button" onclick="return declinestudentrequest('@item.StudentRequestId');" class="btn btn-default btn-hire decline_btn" value="Decline" />
    

    在脚本中

    function declinestudentrequest(id) {
        var StudentRequestId = document.getElementById('hdstatusstudentrequestid_'+id).value;
        var StatusId = document.getElementById('hdstatusdecline').value;
        $.ajax({
            url: '/Account/declinestudentrequest',
            type: 'GET', // You can use GET
            data: { 'StudentRequestId': StudentRequestId },
            dataType: "json",
            context: this,
            cache: false,
            success: function (data) {
                if (data == "Success") {
                    $("#GetStatusMessage_" + StudentRequestId).css({ "display": "block" });
                    $('#div_p_' + StudentRequestId).text("You have decline for student Response");
                    $("#GetReqdec_" + StudentRequestId).hide();
                }
                else { alert('Some Error'); }
            },
            error: function (request) {
                console.log(request);              
            }
        });
    }
    

    在这里,我在将 studentrequestid 传递为唯一时创建唯一性

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多