我在我的代码中的公共属性背后名为Tab,我试图访问页面aspx文件与JavaScript中,但我不知道如何获得正确的价值。从JavaScript访问C#变量
这给了我的价值我想
alert('<% Response.Write(this.Tab); %>');
这不
var x = <% =this.Tab %>;
alert(x);
任何想法?
我在我的代码中的公共属性背后名为Tab,我试图访问页面aspx文件与JavaScript中,但我不知道如何获得正确的价值。从JavaScript访问C#变量
这给了我的价值我想
alert('<% Response.Write(this.Tab); %>');
这不
var x = <% =this.Tab %>;
alert(x);
任何想法?
如果你查看你可能看到
var x = mystring;
源我猜你想要的报价太
var x = "<%= this.Tab %>";
而不必联代码的,你为什么不看的RegisterStartupScript或的RegisterClientScriptBlock。
这是它非常感谢你。 – 2012-02-27 01:54:31
如果this.Tab
是一个字符串而不是一个数字,那么JS将会中断,因为在第二个示例中没有引用引号。
var x = '<%= this.Tab %>';
alert(x);
什么
var x = "<% =this.Tab %>";
?这取决于当然的价值,但你必须生成有效的JavaScript。事实上,如果它是一个字符串,除非你完全控制它的值,并且你确定该值本身不包含引号字符,否则你可能想做的不仅仅是引用它。
两种方法做到这一点,一个是
var y = '<%=this.Tab %>';
您还可以在代码中使用JavaScriptSerializer背后,让来回报您的变量的值,以JavaScript代码的方法。这有助于如果你想返回你的私人数据,也可以实现更多的逻辑来获得你想要的值。
您的代码behind-
protected string GetTabValue()
{
// you can do more processing here
....
....
// use serializer class which provides serialization and deserialization functionality for AJAX-enabled applications.
JavaScriptSerializer jSerializer=new JavaScriptSerializer();
// serialize your object and return a serialized string
return jSerializer.Serialize(Tab);
}
你的aspx页面
var x = '<%=GetTabValue()%>';
// called server side method
alert(x);
用户还可以利用JavaScript的eval函数反序列化复杂的数据结构。
它将工作
var x = '<% =this.Tab %>';
alert(x);
对于剃刀以下工作。
var x = '@yourc#variable';
alert(x);
查看生成的源代码,你会得到启发(我希望) – SLaks 2012-02-26 23:57:11