C# 为什么XhtmlTextWriter会忽略自定义属性?
我发现了一些奇怪的行为,我想知道这里是否有人能帮忙 我正在使用继承addAttribute方法的XhtmlTextWriter类创建一个表单。我正在创建一个C# 为什么XhtmlTextWriter会忽略自定义属性?,c#,asp.net,html,htmltextwriter,C#,Asp.net,Html,Htmltextwriter,我发现了一些奇怪的行为,我想知道这里是否有人能帮忙 我正在使用继承addAttribute方法的XhtmlTextWriter类创建一个表单。我正在创建一个input标记,它需要一个漂亮的(HTML5)占位符属性。addAttribute方法有两个参数:属性名称和值。属性名称可以从HtmlTextWriteAttributeenum中选取,也可以作为字符串手动输入。由于“占位符”在枚举中不可用,我使用了以下代码: StringWriter sw = new StringWriter(); Xht
input
标记,它需要一个漂亮的(HTML5)占位符属性。addAttribute
方法有两个参数:属性名称和值。属性名称可以从HtmlTextWriteAttribute
enum中选取,也可以作为字符串手动输入。由于“占位符”在枚举中不可用,我使用了以下代码:
StringWriter sw = new StringWriter();
XhtmlTextWriter html = new XhtmlTextWriter(sw);
html.AddAttribute(HtmlTextWriterAttribute.Type, "text");
html.AddAttribute(HtmlTextWriterAttribute.Name, "firstname");
html.AddAttribute("placeholder", "First Name");
html.AddAttribute("maxlength", "25");
html.RenderBeginTag(HtmlTextWriterTag.Input);
html.RenderEndTag();//input
return sw.ToString();
这很好地创建了指定的元素和属性。。。除占位符外:
<input type="text" name="firstname" maxlength="25"></input>
//更新:
required
属性存在相同的问题。。。它可能是HTML5特有的吗?这是因为您使用的是XhtmlTextWriter
,它对属性要求严格,不会写出无法识别的属性(因为需要生成有效的XHTML)。你有两个选择
One:改用htmltextwitter
:
HtmlTextWriter html = new HtmlTextWriter(sw);
2:如果出于某种原因需要使用XhtmlTextWriter
,可以在将属性添加到元素之前,将占位符
添加为输入
元素的可识别属性:
html.AddRecognizedAttribute("input", "placeholder");
啊哈,听起来很合理。我想遵守HTML5。MSDN在XHTML-ltextwriter页面上说,“除非您专门将ASP.NET配置为不呈现XHTML标记,否则htmltexwriter将输出XHTML”,因此我倾向于您的第一个解决方案。你推荐什么?(我明天会检查我的代码,到时候你会得到你的对号)
html.AddRecognizedAttribute("input", "placeholder");