c#
  • javascript
  • jquery
  • .net-3.5
  • asmx
  • 2011-08-04 15 views 0 likes 
    0

    更新日:NaNがInt32エラーの有効な値ではないのはなぜですか?

    同じエラーが発生しています。 xをクリックすると、{id:23}が返されますが、代わりに{id: NaN}が返されます。この問題は、三項演算子を削除した場合に修正されます。


    私は私のWebページへの変更作られています:それはこのだった

    を:

    $("#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();

    stickyが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; 
    } 
    

    誰もが知っていますそのエラー?

    私は、おそらく二重または一重引用ミス、三項欄で間違いをしたと思っていますが、私はそれを見ることができません。

    +0

    あなたは、CloseNotificationがどのように呼び出されたかについて詳しくは述べていません。 – alnorth29

    +0

    基本的に 'x'のidから番号を抽出してサーバに送ります。元の質問の更新を参照してください。 – nami

    答えて

    2

    あなたは余分な'b後にあり

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

    を読み込む行にあなたのコードに構文エラーがあります。読み込みする必要があります。

    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>") 
    
    +0

    それはそれだった...ありがとう! – nami

    0

    あなたは三項演算子で</a>後に単一引用符を持っています。

    関連する問題