【发布时间】:2010-09-20 23:40:47
【问题描述】:
我正在开发 Facebook FBML 控件库,并希望创建类似于 ASP.NET WebControls 库的模式的 FBML 控件。我有一个默认处理渲染的基类;这是我的渲染方法:
protected override void Render(HtmlTextWriter writer)
{
AddAttributesToRender(writer);
if (UseXfbmlSemantics)
{
writer.RenderBeginTag(ElementName);
writer.EndRender();
writer.RenderEndTag();
}
else
{
writer.RenderBeginTag(ElementName);
writer.RenderEndTag();
}
}
我想要的是基于 UseXfbmlSemantics 修改渲染 - 如果它是真的,它应该渲染,例如:
<fb:name uid="10300399458"></fb:name>
当它为 false 时,它应该使用自关闭标签呈现:
<fb:name uid="10300399458" />
我可以让“真”条件几乎正确地工作,但是自闭合标签似乎与 Render-set 方法不兼容。不幸的是,如果是这种情况,这也意味着 AddAttributesToRender 模式也不起作用。它实际产生的是这样的:
<fb:name uid="10300399458">
</fb:name>
如何获取 HtmlTextWriter(或我需要使用哪个 HtmlTextWriter)以使其呈现自闭合标签?或者,至少,我怎样才能让它不渲染那个中间空间(以便开始和结束标签紧挨着彼此)?
【问题讨论】:
标签: c# asp.net facebook custom-server-controls