Is there a way to use "<%= someObject.ClientID %>" in an external javascript file?

如果我使用代码

<%= someObject.ClientID %>

在我的As(c/p)x页面内的脚本标记中,它工作得很好.在呈现的页面上,将解析ClientID. 但是,如果我放入一个外部JS文件并只添加:

没有.是有办法做到这一点,还是我必须把代码留在as(c/p)x文件中?

Side question -- what is the act of doing <%=... %> in your markup file called?

推荐答案

这是完全有可能的.

在你的房间里.aspx页面,创建一个包含javascript代码的aspx page的脚本引用:

<script src="../MyJavaScriptFile.js.aspx" type='text/javascript'></script>

然后,您可以在MyJavaScriptFile.js.aspx中编写以下内容:

<%@ Page Language="C#" AutoEventWireup="false"  ContentType="text/javascript" %>

<% 
    var foo = new Whatever();
    foo.ClientId = 123;
%>

// Start Javascript
var clientId = <% HttpContext.Current.Response.Write(foo.ClientId); %>;

.

同样有用-此技术支持查询字符串参数:

 <script src="../MyJavaScriptFile.js.aspx?username=<% somevalue %>" 
       type='text/javascript'></script>

然后,在MyJavaScriptFile中.js.aspx,我可以用

var username = '<% Request.QueryString["username"] %>';

这不是做事情的"最佳实践",但它以我的穴居人大脑可以理解的方式完成了工作,而不需要求助于花哨的变通方法.

Asp.net相关问答推荐

ASP.NET MVC forEach 循环仅返回 1 个值

在 Windows Server 2008 IIS7 上的 ASP.NET 中写入事件日志(log)

从 asp.net 中的 Web.config 获取连接字符串

在 lambda 表达式中否定 Func

如何在运行时判断动态数据类型的类型?

asp.net - 会话 - 多个浏览器选项卡 - 不同的会话?

部署后 ASP.Net Core Identity 登录状态丢失

为什么我在安装 IE8 后无法从 Visual Studio 2005 调试?

如何判断 IIS 是处于 32 位还是 64 位模式

使下拉列表项不可 Select

使用 JObject 所需的库名称是什么?

将 Http 请求读入字节数组

使用 Ninject OWIN 中间件在 OWIN 启动中注入 UserStore

将 MemoryStream 写入响应对象

Application_Start 和 Application_OnStart 之间的区别

Page.IsPostBack 和 Page.IsCallBack 有什么区别?

在 Visual Studio 2012 中调试 .NET Framework 源代码?

ASP.NET 网格视图与列表视图

如何使 URL 重写与 web.Release.config 转换一起工作?

禁用文本框的模型绑定