我将script.js放入文件夹脚本中。
我想从Web表单(例如<%= myString = 3 %>
)管理该脚本中的一些C#变量。
我认为这是不可能的,但也许我可以用某种方式做到这一点?谢谢
答案 0 :(得分:2)
Javascript是客户端执行的代码,C#是服务器端执行的代码。所以你不能严格地使“变量”可见,因为它们是两个完全不同的代码平台/运行时,在两台不同的计算机上运行。但是,您仍然可以通过几种不同的方式封送它们之间的数据。
第二个例子(因为你问过):
<!-- Somewhere in your page -->
<span style="visibility:hidden" id="myData"><%= myString %></span>
// In Javascript, using jQuery:
var myData = $('#myData').text();
答案 1 :(得分:2)
如果变量与页面上的特定元素直接相关,那么您一定要考虑使用HTML5 data-*
属性来存储值。想象一下变量属于一个锚元素,你可以这样输出:
<a href="something" id="myLink" data-my-var="5">Blah</a>
然后您可以使用jQuery访问变量,如$("#myLink").data("myVar")
(请注意驼峰情况)。 jQuery将尝试将值转换为正确的类型。如果你想要原始值,那么只需使用像attr
这样的$("#myLink").attr("data-my-var")
jQuery方法(注意属性名称没有改变)。
或者,您可以在服务器端代码中执行以下操作以输出到您的页面:
<script type="text/javascript">
var myVar = <%= someVariableToOutput %>;
</script>
只要在您的依赖脚本上方输出此代码,就可以像使用任何其他JS变量一样访问它。
最后,您可以在加载页面时执行AJAX请求并以此方式获取变量(尽管如果数据仅在主请求期间可用,则可能不适用)
希望有所帮助