jquery сообщение работает только часть времени, но без ошибок - PullRequest
0 голосов
/ 09 января 2020

У меня есть jquery функция, подобная этой:

function btnclick(btndatatxt) {
    $("body").css("cursor", "wait");
    btndata = document.getElementById(btndatatxt);
        if ($(btndata).hasClass('colorred')) {
            $(btndata).removeClass('colorred');
            $(btndata).addClass('colorgreen');
            checked = true;
        }
        else {
            $(btndata).removeClass('colorgreen');
            $(btndata).addClass('colorred');
            checked = false;
        }
        var link = 'UpdateCheckbox/?recordid=rpl1&completed=rpl2';
        link = link.replace("rpl1", btndatatxt);
        link = link.replace("rpl2", checked);
        link = link.replace("&", "&");
    $.ajax({
        type: "POST",
        url: link,
        context: document.body,
        error: function (xhr, status, error) {
            alert(xhr.status);
            alert(xhr.responseText);
        },
        failure: function (response) {
            alert(response.d);
        }
    }).done(function () {
        $("body").css("cursor", "default");
    }); 

Она вызывается при нажатии этой кнопки, на мой взгляд:

<button id="@btnID" class="@chkclass" value="@chkday" onclick="btnclick('@btnID')"></button>

Это прекрасно работает, пока я не публикую sh на моем сайте. Тогда это может или не может работать. Например, я загружаю страницу и нажимаю кнопку, и она, кажется, меняется, но при перезагрузке кнопка не изменяется. Это может случиться несколько раз. Затем я снова нажимаю кнопку, и она, кажется, меняется, и в этот раз я перезагружаю страницу, и она остается измененной.

Код не возвращает никаких ошибок. Любая помощь приветствуется.

Код контроллера для сохранения изменений в c#: ...

[HttpPost]
public ActionResult UpdateCheckbox(string recordid, string completed)
        {
            string result = "error";
            try {
                int compl = 0;
                if (completed == "true")
                {
                    compl = 1;
                }               
                 result = EntriesModel.SaveCheck(recordid, compl);
                return Content(result);
            }
            catch (Exception e)
            {
                result = e.Message;
            }
            return Content(result);
        }

...

Код контроллера для получить модель:

... publi c ActionResult OperatorBoard_Operate (int SelectedOperatorBoardID) {Entriesmodel.entries = new EntriesModel () records = EntriesModel.GetEntries (); обратный просмотр («OperatorBoard», записи); ...

Файл Routeconfig: ...

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

namespace SixS
{
    public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
            routes.IgnoreRoute("ChartImg.axd/{*pathInfo}");
            routes.IgnoreRoute("{controller}/ChartImg.axd/{*pathInfo}");
            routes.IgnoreRoute("{controller}/{action}/ChartImg.axd/{*pathInfo}");
            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }
    }
}

...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...