为什么我得到的NaN不是Int32错误的有效值

本文关键字:Int32 错误 有效值 不是 NaN 为什么 | 更新日期: 2023-09-27 18:04:26

更新:

我也犯了同样的错误。当我点击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();

该部分工作正常,如果stick为true,则不会创建x链接。

然而,当我点击任何其他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;
}

有人知道我为什么会犯那个错误吗?

我想我在三元部分犯了一个错误,可能是双引号或单引号的错误,但我看不出来。

为什么我得到的NaN不是Int32错误的有效值

您的代码中读取的行出现语法错误

id='b'" + notifications.d[i].id + "' value='x'>x</a>'" ) + "</div>" ).show();

b之后还有一个额外的'。它应该是:

id='b" + notifications.d[i].id + "' value='x'>x</a>'" ) + "</div>" ).show();

编辑

在三元运算的末尾还有一个额外的'

( notifications.d[i].sticky ? "" : "<a href='#' class='notification_button' id='b" + notifications.d[i].id + "' value='x'>x</a>'" )

应该是:

( notifications.d[i].sticky ? "" : "<a href='#' class='notification_button' id='b" + notifications.d[i].id + "' value='x'>x</a>" )

在三元运算符的</a>后面有一个单引号。