我正在尝试执行以下操作:
<script>
var documentId = %(this).attr('id');
<% int docId = %>documentId<%;%>
</script>
正如您所看到的,我正在尝试创建一个新的服务器变量,但是要分配javascript变量的值。或至少评估javascript变量。 (这是我试图解决的现实世界问题的一个简单例子)我有什么办法可以做到这一点吗?
答案 0 :(得分:4)
问题:
在理解了上述陈述后,您会发现您当前的例子在技术上是不可能的。
您需要做的事情(如果您的目标是阻止页面刷新)是使用AJAX将新数据发送到服务器上的脚本。该脚本将处理数据并响应浏览器。
答案 1 :(得分:0)
在呈现页面之前,将首先处理服务器代码。因此,您必须使用类似AJAX的东西将JavaScript值传递回服务器。
答案 2 :(得分:0)
由于您的服务器代码为对象提供了@id,因此服务器应该在创建时就知道它。但不,你不能像这样交错客户端和服务器 - 它们在时间和地理上不相交
答案 3 :(得分:0)
您无法执行此操作,因为已经计算了服务器变量,并且在客户端脚本运行时已生成HTML。
服务器端代码运行=&gt;生成的HTML文件服务于浏览器=&gt; Javascript代码运行
此过程是单向的,因此如果不使用Ajax请求,就无法返回该变量。
但是,如果您只需要id,并且控件是.NET控件,则只需使用myControl.ClientID值即可。
答案 4 :(得分:0)
要将数据从浏览器发送到服务器,您应该使用表单控件(文本字段,隐藏字段,文本区域,复选框等)或ajax。在您的情况下,您可以将javascript对象序列化为字符串,并通过隐藏字段或XmlHttpRequest将其传递给服务器。