2012-02-16 63 views
1

我想在Ajax調用的數據中使用.Net服務器變量和用戶。jquery/.net在Ajax調用數據中傳遞服務器變量

$.ajax({ 
    url: "get_user_info.aspx", 
    data: "user_id=<%=UserID%>" 
}); 

但是,我得到一個對象與上述錯誤的錯誤。

UserID是C#代碼隱藏中的一個int。

我已經嘗試過了強制轉換爲字符串,像這樣:

var useridstring = <%=UserID%>; 
var mynewstring = useridstring.toString(); 

$.ajax({ 
     url: "get_user_info.aspx", 
     data: {user_id:mynewstring} 
    }); 

它不工作,雖然。我在這裏閱讀了關於在變量中使用隱藏輸入的帖子,但是我希望避免使用上述方法的方法。

+1

在第二種情況下:1. useridstring *和*的值是多少?2.它以什麼方式「不工作」? – Richard 2012-02-16 15:56:42

回答

3

你的字段名(USER_ID)必須是一個字符串:

var useridstring = '<%=UserID%>'; 


$.ajax({ 
     url: "get_user_info.aspx", 
     data: {'user_id':useridstring} 
    }); 
+1

從技術上講,字段名稱不一定是字符串,除非你做了一些奇怪的事情(比如傳遞一個數組)。但是你的代碼確實解決了這個問題,因爲第一行 - 沒有<%=UserID%>左右的引號,javascript會嘗試評估用戶ID作爲變量而不是字符串。 – Dave 2012-02-16 16:06:01

+0

嗯...仍然沒有工作。我仍然得到一個Javascript錯誤對象預期任何時候我在<%=UserID%>任何地方。如果我拿出來,它工作正常。我把它放進去,JS的更下方就嚇倒了。我正在使用.Net 2.0框架與ViewState。那裏可能會有衝突嗎? – User970008 2012-02-16 17:06:23

+0

你可以請張貼你的HTML(不是你的.net源碼):jsfiddle.net – 2012-02-16 17:09:09

0

我將變量放置一個隱藏的DIV中,並從jQuery的得到這個div的內部文本。

var useridstring = $get('myDiv'); 

<div id='myDiv' style="display:none;><%:UserID%></div> 
+0

是的,Diodeus給出了正確的答案,實際上我的解決方案並沒有幫助解決問題... – enricoariel 2012-02-16 16:07:46