Попробуйте заменить следующий цикл:
for (var i = 0; i < $('.case').length; i++) {
if ($('.case')[i].checked)
$('.case')[i].checked = false;
}
с этим:
$('.case').removeAttr('checked');
Также убедитесь, что вы правильно URL кодируете параметры строки запроса:
'?message=' + encodeURIComponent(message)
Также вы не должны использовать никакой javascript после window.location.reload();
. Эта функция делает то, что предлагает ее название: она перезагружает страницу, удаляясь от нее, что в результате может остановить выполнение любого последующего js.
Также попробуйте вернуть действительный объект JSON из действия контроллера TakeActions
:
public ActionResult TakeActions()
{
...
return Json(new { status = true });
}
и затем на стороне клиента используйте следующий тест:
success: function(result) {
if (result.status) {
...
} else {
...
}
}
Проблема с вашим кодом в том, что я подозреваю, что вы вернули только true:
public ActionResult TakeActions()
{
...
return Json(true);
}
, который отправляет строку true
в ответ, который является недопустимой строкой JSON, и все же вы сообщаете jQuery, что ваш сервер возвращает JSON, установив dataType: 'json'
.
И еще одно замечание: вы, похоже, используете некоторую переменную message
, которая не объявлена нигде в области действия, которую вы указали в своем вопросе. Эта переменная на самом деле где-то объявлена? Он объявлен в области видимости, доступной в вашей функции?