是否可以在外部javascript文件中插入我的尖括号,百分比,等于<%=%>语法?

Joh*_*ant 4 .net javascript jquery

通常在将jQuery与asp.net混合时,我需要在jQuery选择器中使用asp .net尖括号百分比,<%%>,语法.

如果我想将JavaScript与标记分离到不同的文件中,还有一种方法可以评估我的JavaScript文件,以便在到达客户端浏览器之前插入尖括号百分比吗?

Mar*_*ade 10

如果要<% code blocks %>在JavaScript文件中评估为ASP.NET代码,可以将JavaScript放在ASPX文件中并从SCRIPT元素引用它.

script.js.aspx:

function hideElements()
 { <% foreach(var elementId in Request.QueryString["hide"].Split(',') { %>
   jQuery('#' + <%= elementId %>).hide('slow');
   <% } %>
 }
Run Code Online (Sandbox Code Playgroud)

page.aspx:

<script src="script.js.aspx?hide=<%= GetElementsIds() %>"
        type='text/javascript'></script>
Run Code Online (Sandbox Code Playgroud)

page.aspx.cs:

public string GetElementIds() 
 {
   return string.Join(",", new []{control1.ClientID, control2.ClientID});
 }
Run Code Online (Sandbox Code Playgroud)


bdu*_*kes 2

不,您需要重构 JavaScript 以接受该信息作为参数。

所以,而不是

jQuery('#<%=MainPanel.ClientId%>').hide('slow');
Run Code Online (Sandbox Code Playgroud)

做这样的事情:

function hidePanel(panelId) {
        jQuery('#' + panelId).hide('slow');
}
Run Code Online (Sandbox Code Playgroud)

您可以从您的页面调用它

hidePanel('<%=MainPanel.ClientId%>');
Run Code Online (Sandbox Code Playgroud)