gpt4 book ai didi

asp.net - 控制属性在 dot net 4 上呈现编码 - 如何禁用编码?

转载 作者:行者123 更新时间:2023-12-01 13:06:20 24 4
gpt4 key购买 nike

我在 asp.net 4 中遇到问题。

当我在控件上添加属性时,渲染器会对其进行编码。

例如,当我输入这段代码时

txtQuestion.Attributes["onfocus"] = 
"if(this.value == this.title)
{
this.value = '';
this.style.backgroundColor='#FEFDE0';
this.style.color='#000000';
}";

我得到渲染

onfocus="if(this.value == this.title){this.value = 
'';this.style.backgroundColor='#FEFDE0';
this.style.color='#000000';}"

并且每个 ' 哈希都已更改为 & #39;

有没有办法在某些控件上禁用这个新的 future ?还是制作自定义渲染的简单方法?

我的失败尝试

我已经准备好尝试一些想法,但我失败了。例如,这失败了。

txtQuestion.RenderingCompatibility = new Version("3.5");

我也定位了这个属性渲染的点是在

public virtual void RenderBeginTag(HtmlTextWriterTag tagKey) 函数,

如果他想被编码,每个属性都有一个标志,但我不知道如何设置或不设置。

一种解决方法

In the asp net forum 在同一个问题中,有一个改变全局 EncodeType 的解决方案 - 这不是我搜索的解决方案 - 提供解决方案的人说这不是一个很好的解决方法,有潜力安全问题或其他呈现问题。

先谢谢大家。

作者:克尔文

直到现在 Kervin 发现微软建议改用这个命令。

txtQuestion.Attributes["onfocus"] = 
"if(this.value == this.title){this.value = '';this.style.backgroundColor='#FEFDE0';this.style.color='#000000';}";

使用这个。

    Page.ClientScript.RegisterExpandoAttribute(txtQuestion.ClientID, "onfocus", 
"if(this.value == this.title){this.value = '';this.style.backgroundColor='#FEFDE0';this.style.color='#000000';}");

而 MS 呈现的是在页面末尾,一个使用 JavaScript 在此控件上添加焦点的脚本。我们甚至可以自己使用 jQuery 做到这一点,并且可能更兼容。

这是一个解决方案,但我仍然想知道是否有一种方法可以避免属性编码,让我按照自己的方式行事 - 而不是 MS 方式。

最佳答案

您是否尝试过使用 this new ASP.NET 4 feature制作自定义编码器?

关于asp.net - 控制属性在 dot net 4 上呈现编码 - 如何禁用编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2912401/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com