У меня есть 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 }
);
}
}
}
...