UPDATE:
Я получаю ту же ошибку. Когда я нажимаю x
, он должен возвращать {id: 23}, но вместо этого он возвращает {id: NaN}
. Эта проблема исправляется, если я удаляю троичный оператор.
Я внес изменение в свою веб-страницу:
Это было так:
$( "#notifications" ).prepend( "<div class='notification' id='n" + notifications.d[i].id + "'><span class='notification_text'>" + notifications.d[i].text + "</span><a href='#' class='notification_button' id='b" + notifications.d[i].id + "' value='x'>x</a></div>" ).show();
и я изменил его на это, добавил троичное условие в зависимости от значения notifications.d[i].sticky
:
$( "#notifications" ).prepend( "<div class='notification' id='n" + notifications.d[i].id + "'><span class='notification_text'>" + notifications.d[i].text + "</span>" + ( notifications.d[i].sticky ? "" : "<a href='#' class='notification_button' id='b'" + notifications.d[i].id + "' value='x'>x</a>'" ) + "</div>" ).show();
Эта часть работает нормально, она не создает ссылку x
, если sticky имеет значение true.
Однако, когда я нажимаю на любой другой x
, я получаю сообщение об ошибке на стороне сервера:
NaN is not a valid value of Int32
Серверный код выглядит так:
[WebMethod()]
public int CloseNotification(int id) {
using (connection = new SqlConnection(ConfigurationManager.AppSettings["connString"])) {
using (command = new SqlCommand("update notifications set closed_by = @user where id = @id", connection)) {
command.Parameters.Add("@id", SqlDbType.Int, 4).Value = id;
command.Parameters.Add("@user", SqlDbType.VarChar, 4).Value = "abc";
connection.Open();
intAffectedRows = command.ExecuteNonQuery();
connection.Close();
}
}
return intAffectedRows;
}
Кто-нибудь знает, почему я получаю эту ошибку?
Я думаю, что допустил ошибку в троичном разделе, возможно, ошибку в двойную или одинарную кавычку, но я ее не вижу.