【问题标题】:Prevent Embedded ASP Code from being escaped防止嵌入式 ASP 代码被转义
【发布时间】:2018-06-20 08:47:18
【问题描述】:

这个看起来与here 提出的问题相似,但 OP 提出的方案看起来不同,因为他接受的答案不符合我的要求。就我而言,我正在尝试嵌入一个 asp sn-p作为从 button 的 onclick 调用的 Javascript 方法的参数,但结果是标签在编译时被转义。 ASP 代码是:

<asp:Button runat="server" ID="Calculate_Mean" Text="Calculate Mean" 
OnClientClick="mean('<%$TextBoxA.ClientID + ',' + TextBoxB.ClientID + ',' +
TextBoxC.ClientID%>')"

我得到的结果是:

<input type="submit" name="Calculate_Mean" 
value="Calculate Mean"
onclick="mean(&#39;&lt;%=TextBoxA.ClientID%>&#39;);" id="Calculate_Mean" />

我已经参考并尝试了以下页面,但仍然无法解决问题:

Passing ASP.net control to JS Function
Different Embedded ASP Code Blocks and its uses

编辑:这是渲染页面的屏幕截图:

【问题讨论】:

  • 为什么要使用 $ ?
  • 是的兄弟,我尝试了所有类型的标签,但结果都是一样的
  • 你页面的文件扩展名是什么?
  • @Schalk.Netgen 其.aspx
  • 出现注释掉的服务器端代码通常意味着它没有得到处理——原因通常是使用了错误的文件扩展名。我的专长是 ASP.NET/Razor,所以我希望我能提供更多帮助,但我建议在嵌入代码之外的其他地方寻找问题。您能否发布已检查页面的屏幕截图并突出显示有问题的代码?

标签: javascript asp.net ajax asp.net-ajax


【解决方案1】:

也许您可以将 asp:button 更改为 html 按钮:

<button  onclick="mean( document.getElementById('<%=TextBoxA.ClientID%>'));" ></button>

或者尝试在 js 函数中获取客户端 ID:

ASPX

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">
        function mean() {
            var a = document.getElementById('<%=TextBoxA.ClientID%>');
            var b = document.getElementById('<%=TextBoxB.ClientID%>');
            var c = document.getElementById('<%=TextBoxC.ClientID%>');
            alert(a.value);
            alert(b.value);
            alert(c.value);
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="TextBoxA" runat="server" ></asp:TextBox>
                <asp:TextBox ID="TextBoxB" runat="server" ></asp:TextBox>
                <asp:TextBox ID="TextBoxC" runat="server"  ></asp:TextBox>
    <asp:Button runat="server" ID="Calculate_Mean" Text="Calculate Mean" 
        OnClientClick="mean();" />
    </div>
    </form>
</body>
</html>

【讨论】:

  • 但不能将它作为参数注入到被调用的 js 函数中,因为这个平均值将被作为表格行的多个输入调用?例如:mean(txtbox1, txtbox2,txtbox3)mean(txtbox4, txtbox5,txtbox6)
  • @thecodingpanda 你可以换一个 html 按钮吗?检查我的更新
  • 感谢@Mate,&lt;button onclick="mean('&lt;%=TextBoxA.ClientID%&gt;');"&gt;&lt;/button&gt; 看起来很整洁,而且成功了 :)
猜你喜欢
  • 2019-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-25
  • 1970-01-01
  • 2011-04-03
  • 1970-01-01
  • 2011-01-21
相关资源
最近更新 更多