【问题标题】:Access C# variable in javascript file .js访问 javascript 文件 .js 中的 C# 变量
【发布时间】:2012-04-26 10:38:30
【问题描述】:

是否可以创建带有一些 C# 变量的 javascript 文件?像这样的:

var foo =  <%= CODE_VALUE.foo %>;

或者我必须在 &lt;head&gt; 部分中包含的 usercontrol.ascx 中创建它们吗?

【问题讨论】:

  • 如果你尝试过,你会发现这确实是可能的。
  • @GrahamClark 好吧,事实并非如此。无论如何不在 .js 文件中,除非您重新配置 IIS 以使用 ASP.NET 处理 .js 文件。这将是一个糟糕的主意。
  • @Shedal,抱歉,我没有看到“javascript 文件”位。没关系!

标签: c# javascript asp.net


【解决方案1】:

您不能在 .js 文件中包含此代码,因为它不是由 asp.net 编译的,因此不会将 CODE_VALUE.foo 转换为代码。

你可以做的是在加载这个你赢得使用的 .js 文件之前放置这个变量,并将它们设置在任何 aspx 或用户控件上。

例如

<script>
 var foo = <%=CODE_VALUE.foo%>;
<script>
<script type="text/javascript" src="fileToUseTheFoo.js">   
</script>

或者,您可以创建一个处理程序来读取 javascript 文件、包含您的自定义变量并根据需要创建完整的 javascript 代码,然后将其作为 javascript one 发送。

一些亲戚:How to get asp.net client id at external javascript file

【讨论】:

  • 我喜欢这个!为什么我从来没想过这样做!?
  • @SimoN 我删除是为了听起来不那么连线... :) 我的意思是这认为并不那么重要,因为你还年轻,你有时间去发现它们。重要的是保持开放的心态,对自己的生活感到满意:)
  • 没问题,我不是那种会因为你说我年轻而生气的人;)我是,但我还有 5 个网络年落后,所以我认为不是太糟糕了:)
  • 五年是大学时光,也是一生的编程时间:)
【解决方案2】:

不,您不能在 .js 文件中使用服务器端标签。 而是在需要它们的页面/控件上创建变量。

【讨论】:

    【解决方案3】:

    Javascript 文件是静态文件,也由 Web 服务器静态提供,无需使用 ASP.NET 进行处理。

    因此,如果您真的想插入该值,您可以创建一个空的 .aspx 页面并在其中包含所有 javascript,然后将 .aspx 页面包含在 script src 中。

    但我可能更喜欢使用 Web 服务,每次需要接收值时都可以从 javascript 调用 Web 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-12
      • 2017-07-07
      • 1970-01-01
      • 2022-11-14
      • 2014-10-08
      相关资源
      最近更新 更多