如何在 <%=value%> 类型的块中强制执行赋值

Posted

技术标签:

【中文标题】如何在 <%=value%> 类型的块中强制执行赋值【英文标题】:How to force execution of value assignment in blocks of type <%=value%> 【发布时间】:2013-04-23 15:24:03 【问题描述】:

是否有指令或指令强制在网页中执行 类型的块?因为我有一个 Web 项目,其中我有一个该类型的块,它只评估非常第一次(当值为“”),但如果我更改变量值的值,它是字符串类型的公共字段,在按钮内内容不计算,我正在使用值插入脚本。我将我的 aspx 副本上传到我的 Web 服务器并且代码工作正常,但我遇到的问题是它在我调试时不起作用,从未评估值并且从未插入脚本块。

我真的需要能够在运行脚本的情况下调试 Web 应用程序以保持编码。

问候。

附:我确实需要使用这种方法,因为 ScriptManager 的 RegisterClientScriptBlock 和 RegisterStartupScript 对我来说在以前版本的 Internet Explorer 上是无用的。

.......

    public string value = "";

    protected void Button1_Click(object sender, EventArgs e)
    
        //Just a silly example of a script.
        value = "<script type=\"text/javascript\">alert(Add(3,4));</script" + ">";

    

…………

<script type="text/javascript">
    function Add(number1, number2) 
        return (number1 + number2);
    

 </script>

<%=value %>

【问题讨论】:

RegisterClientScriptBlock 或 RegisterStartupScript 在以前版本的 IE 上怎么没用?您对此有何感受? 我只是尝试了几次使用两个指令,结果相同,脚本从未插入,如果我调试代码行,那些被执行但脚本从未出现在页面上,即为什么我将这些说明称为无用。 【参考方案1】:

aspx:

<asp:Literal ID="Literal1" runat="server"></asp:Literal>

c#:

Literal1.Text = "<script type=\"text/javascript\">alert(Add(3,4));</script" + ">";

这对你有用吗?

【讨论】:

我尝试了您的解决方案,但令人难以置信的是没有插入脚本,我认为我的网页有些棘手。尽管我认为您的解决方案很有创意,但就像我的网页执行被卡住一样,您可以看到它也无法为文字赋值:(。 而不是分配js字符串,如果给Literal1.Text分配一些随机字符串值,页面会渲染该值吗? 是的,我用初始值“hey”测试了文字并且它工作了,但是在按下按钮后它对文字的值没有任何作用,脚本没有被插入。

以上是关于如何在 <%=value%> 类型的块中强制执行赋值的主要内容,如果未能解决你的问题,请参考以下文章

Terraform 嵌套动态块:不支持的块类型

如何修复不兼容的块指针类型发送错误?

如何防止窗口范围的粘性元素在更宽的块内滚动?

如何使用 grep 或 awk 打印出特定的块? [复制]

Typescript:在这种情况下如何使用泛型类型键入函数?

c++如何理解map对象的value_type是pair类型