ASP.NET单引号转换为'
注意:最有可能这是一个双重问题,但由于我没有找到明确的答案,无论如何我都会问它。
在ASP.NET中,我想在CheckBox的onclick事件中添加一些JavaScript。 我简化了这个案例:
生成的HTML如下:
特别困扰我的是,单个引号“自动”转换为“'”。 如果我省略了标记中的onclick并在Page_Load中分配它,则HTML中会显示完全相同的结果。
protected void Page_Load(object sender, EventArgs e) { this.TestCheckBox.Attributes["onclick"] = "alert('test');"; }
任何人都知道发生了什么? 或者如何修复/避免它?
如果其他人发现了这个问题,这就是我能够从自定义控件中注入属性而不使用html值编码的方式。 这是一个按钮的示例,该按钮调用异步function以确认按钮按下操作。
关键是使用writer.AddAttribute(),它具有禁用HTMLEncode步骤的标志。 这似乎也取决于您使用的是哪个版本的asp.net。 这适用于.net 4.6.1
public class ConfirmationLinkButton : LinkButton { protected override void AddAttributesToRender(HtmlTextWriter writer) { base.AddAttributesToRender(writer); string script = "confirmAsync('" + ConfirmationMessage.Replace("'", "\\'") + "', " + Callback() + ");" + "return false;"; writer.AddAttribute(HtmlTextWriterAttribute.Onclick, script, false); } private string Callback() { return "(data) => { if (data===true) {" + Page.ClientScript.GetPostBackEventReference(this, "") + "}}"; } public string ConfirmationMessage { get; set; } }
当我们将项目从.NET 3.5迁移到.NET 4.0时,我们在属性值中出现了与单引号相同的问题。 它将属性值中的所有单引号转换为&39;
。 所以我们回到了.NET 3.5。
这是一个.NET 4.0的东西。 您可以在此处详细了解此问题。
首先,asp复选框控件不会将onclick作为有效属性。
所以你可以做两件事:
1-如果您不需要值服务器端,则可以只使用普通复选框而不是asp复选框。
2-如果需要值服务器端,请在复选框中添加runat =“server”属性和位置和ID,以便在代码中引用它。
最近我碰到了这个,在数据绑定发生之后,控件正在更新。 修复是在OnItemDatabound服务器事件期间为涉及的转发器添加onchange javascript:
protected void rptTarifDetails_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item) { TextBox proposedPrice = e.Item.FindControl("txtProposedUnitSell") as TextBox; proposedPrice.Attributes.Add("onchange", "CalcCommissionSingleLine(this,'None','" + ((Repeater)sender).ClientID + "', false, " + rowCount.Value + ")");
我面临同样的问题。 我搜索了很多,最后我通过将页面的内容类型更改为application / xhtml + xm来解决它。
<%@ Page Language="C#" AutoEventWireup="true" EnableViewState="true" Debug="true" ContentType="application/xhtml+xm" %>
希望,这些信息对您有所帮助..
- 使用PHP对ASP.NET成员资格中的用户进行身份validation
- 添加服务引用提供exception:无法连接到远程服务器
- 是否可以在MVC 3中打开/关闭validation数据注释?
- 使用模型在mvc 4中根据出生日期validation年龄
- Request.Files始终为null
- 为什么HttpCacheability.Private会抑制ETag?
- 什么是entity framework中的复杂类型以及何时使用它?
- 来自asp.net C#page的外部javascript文件
- 我如何使用System.Data.Sql.SqlDataSourceEnumerator类来了解可用的sql数据源……?