在.js文件中使用ASP.Net标记

Using ASP.Net tags in a .js file?

本文关键字:ASP Net 标记 js 文件      更新时间:2023-09-26

是否可以在javascript文件中嵌入<% ... %>标记,并让它呈现适当的服务器端代码?如何做到这一点?

这个过程实际上是从你的想法向后的。

您可以创建一个*.aspx页面,该页面将呈现为JavaScript文件。然后,您可以在<script>标签中引用*.aspx页面:

<script type="text/javascript" src="someJavaScript.aspx"></script>

是的,这是可能的,但它不是JS文件,而是一个包含Javascript的aspx文件,而不是html。

在你的页面中,要重新引用它,你可以这样做:

<script type="text/javascript" src="myPage.aspx"></script>

我将对您想要实现的目标做一些假设。很可能您有一个javascript文件,需要访问服务器上的一些信息。比方说,你需要从会话中得到一些东西,如果它是一个aspx页面,你会让它看起来像

<script type="text/javascript">
var username = '<%= Session["username"] %>';
var account_num = '<%= Session["account_num"] %>';
</script>

很明显,这在.js文件中不起作用,因为它从未经历过处理aspx页面的页面生命周期。不过,您不需要像其他人可能建议的那样,将整个.js文件转换为.aspx页面。还有很多其他方法可以将这些数据公开到js代码中。我列出2个。

  1. 在页面响应中发出上述<script>(可能使用<asp:ContentPlaceHolder />
  2. 创建一个Web服务(甚至可以是一个简单的.ashx),返回var username = ...或更好的返回json

是的,只需制作一个包含Javascript的常规网页就可以了。

然而,它的行为可能与您预期的不一样。Javascript文件的缓存时间比页面长。由于浏览器可能不会每次都从服务器请求该文件,因此不会在每次使用该文件时执行您的can。