在JavaScript中检索控制器值

时间:2010-08-20 06:46:23

标签: javascript asp.net-mvc

我有一个临时数据,我希望在javascript中接收,然后想要将其分配给所选的标签?我该怎么办?

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

4 个答案:

答案 0 :(得分:0)

我认为问题是你错过了一个结束括号。

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

我不确定设置标签文本的语法是什么。

答案 1 :(得分:0)

另一件要注意的事情是在第二行


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

答案 2 :(得分:0)

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

btw TempData使用Session,所以你可能想坚持使用ViewData

答案 3 :(得分: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);