0

我将我的 script.js 放入文件夹脚本中。我想在那个脚本中管理一些来自 Web 窗体(例如<%= myString = 3 %>)的 C# 变量。

我认为这是不可能的,但也许我可以以某种方式做到这一点?谢谢

4

2 回答 2

2

如果变量与页面上的特定元素直接相关,那么您绝对应该考虑使用 HTML5data-*属性来存储值。想象一下变量与锚元素有关,您可以像这样输出:

<a href="something" id="myLink" data-my-var="5">Blah</a>

然后,您可以像这样使用 jQuery 访问变量$("#myLink").data("myVar")(注意骆驼案例)。jQuery 将尝试将值转换为正确的类型。如果你想要原始值,那么只需使用attr像这样的 jQuery 方法$("#myLink").attr("data-my-var")(注意属性名称没有改变)。

或者,您可以在服务器端代码中执行以下操作以输出到您的页面:

<script type="text/javascript">
   var myVar = <%= someVariableToOutput %>;
</script>

只要此代码在您的依赖脚本上方输出,就可以像使用任何其他 JS 变量一样访问它。

最后,您可以在页面加载时执行 AJAX 请求并以这种方式获取变量(尽管如果数据仅在主请求期间可用,这可能不适用)

希望有帮助

于 2012-06-12T09:37:02.947 回答
2

Javascript 是客户端执行的代码,C# 是服务器端执行的代码。因此,您不能严格地使“变量”可见,因为它们是两个完全不同的代码平台/运行时,在两台不同的计算机上运行。但是,您仍然可以通过几种不同的方式编组它们之间的数据。

  • 编写一个 Web 服务并通过 AJAX 调用它
  • 使用您的数据填充页面的控件或 URL,并通过 Javascript DOM API(或通过诸如 jQuery 之类的包装库)查询它

第二个例子(既然你问了):

<!-- Somewhere in your page -->
<span style="visibility:hidden" id="myData"><%= myString %></span>

// In Javascript, using jQuery:
var myData = $('#myData').text();
于 2012-06-12T09:30:28.643 回答