我正在尝试创建一个c#函数,它将隐藏所有没有传递的html控件的innerhtml的子元素。有人能指出我正确的方向吗?不确定从哪里开始。
我正在使用asp.net 4.这是我的html结构的一个例子..
<div id="officeInfo" runat="server">
<h2><%= mlaLocationDTO.Name %></h2>
<p><%= mlaLocationDTO.Address.Street1 %></p>
<p><%= mlaLocationDTO.Address.Street2 %></p>
<p>Tel:<%= mlaLocationDTO.Phone %></p>
<p>Fax:<%= mlaLocationDTO.Fax %></p>
<p>Email:<%= mlaLocationDTO.Email %></p>
<a href="#">Get Directions</a>
<a href="#">Submit Your Resume</a>
</div>
我的假功能......
protected void HideHtmlElementsWhenEmpty(Control element)
{
foreach (Control c in element.Controls) maybe there's a better way than to use a loop
{
if(c.innerHtml != null) //not sure what to do here
{
c.Visible = false;
}
}
}
谢谢!
答案 0 :(得分:0)
有条件地输出HTML标记:
<%= String.IsNullOrEmpty(mlaLocationDTO.Address.Street1)
? ""
: "<p>" + mlaLocationDTO.Address.Street1 + "</p>" %>
哦,不要忘记对数据库输出进行正确编码:Street1可能包含<
或其他HTML不适合的字符,我们不希望冒任何脚本注入风险......
<%= String.IsNullOrEmpty(mlaLocationDTO.Address.Street1)
? ""
: "<p>" + Server.HtmlEncode(mlaLocationDTO.Address.Street1) + "</p>" %>