2010-08-20 47 views
2

我有一個臨時數據,我想要在JavaScript中接收,然後將其分配給選定的選項卡?我會怎麼做?在JavaScript中檢索控制器值

var langid ="<% Tempdata["something"] %>"; 
$('#tabs').tabs('select', 'tabs' - langid); 
+2

其他那麼明顯的語法錯誤,這應該工作。什麼是錯誤? – 2010-08-20 07:03:26

+0

沒有我的基本問題是關於這種方法,因爲沒有什麼是在tempdata。 – maztt 2010-08-20 07:26:34

+0

我明白了,對不起。我會用你正在使用的方法。可能在模型上有價值,所以我不必使用「魔術串」,但這取決於情況。 – 2010-08-20 07:34:18

回答

0

一般TempData是你會用什麼來傳遞消息控制器之間,所以在你的情況下,ViewData是更好的選擇,儘管使用強類型模型的屬性被認爲是更好的做法。儘管事實上,這將工作:

var langid ="<%= ViewData["something"] %>"; 
$('#tabs').tabs('select', 'tabs' - langid); 

直列JavaScript在你看來是不是一個好的做法無論是。如果您稍後想要將此代碼提取到單獨的js文件中,它將會中斷。我建議創建一個隱藏字段來存儲HTML中的值,並用jQuery讀取它。

在你看來:

<input type="hidden" id="yourLangId" value="<%= ViewData["something"] %>" /> 

在您的JS:

var langid = $("#yourLangId").val(); 
$('#tabs').tabs('select', 'tabs' - langid); 
0

我認爲問題是你缺少一個右括號。

var langid = <%: Tempdata["something"] %>; 
$('#tabs').tabs('select', 'tabs' - langid); 

我不確定設置標籤文本的語法是什麼。

0

另一個要注意的是在第二線


var langid = <%: Tempdata["something"] %>; 
$('#tabs').tabs('select', 'tabs-' + langid); 

0
<script> 
alert('<%=TempData["something"] %>'); 
alert('<%=ViewData["someelse"]%>'); 
</script> 

BTW TempData的使用會話,那麼可能是你想堅持的ViewData