私が今行っているHTMLテーブルよりも効率的なHTMLテーブルを構築できますか?C#で動的にHTMLテーブルを作成
私はオブジェクトを取得しており、その中にはエンティティのリストがいくつかあります。だから私はそれらのそれぞれを通過し、最初にセルを構築し、それを行に追加し、最後にテーブルに追加する必要があります。
私が試していることは、まったく面倒な、仕事の種類ですが、余分なコードが多すぎます。
public static string CreateNotificationMailMessage(NotificationMailMessage mailMessageObject)
{
var table = new HtmlTable();
var mailMessage = new StringBuilder();
string html;
if (mailMessageObject.InvalidCompanies.Any())
{
HtmlTableRow row;
HtmlTableCell cell;
foreach (var invalidCompany in mailMessageObject.InvalidCompanies)
{
row = new HtmlTableRow();
cell = new HtmlTableCell();
cell.InnerText = invalidCompany.BusinessName;
row.Cells.Add(cell);
cell.InnerText = invalidCompany.SwiftBIC;
row.Cells.Add(cell);
cell.InnerText = invalidCompany.IBAN;
row.Cells.Add(cell);
table.Rows.Add(row);
}
}
using (var sw = new StringWriter())
{
table.RenderControl(new HtmlTextWriter(sw));
html = sw.ToString();
}
mailMessage.AppendFormat(html);
return mailMessage.ToString();
}
最終的に、作成したHTMLテーブルのテキスト版を返送したいと思います。 問題は、3(BusinessName、SwiftBIC、IBAN)よりもはるかに多くのプロパティがあり、mailMessageObjectの内部にもう1つのオブジェクトリストがあるため、コードがひどくなるということです。
誰もがこれをより簡単でクリーンな方法で解決する方法を知っていますか?
はあなたがHTMLを生成するためのSystem.Web.Mvc' 'の' TagBuilder'を使用しようとしましたか?私はMVCアプリケーションではなく、単にSystem.Web.Mvcのリファレンスを含んでいます。 –
"。問題は、3(BusinessName、SwiftBIC、IBAN)よりもはるかに多くのプロパティがあることです。"リフレクションのユースケースが可能であり、 'これをHTMLテーブルに含める'というカスタムタグがあります。または、リストをXmlSerializeし、ビューア上でxsltトランスフォームとして変換をHTMLテーブルに残しますか? – tolanj
また、少なくとも2つのことがあると思います(「たくさんのフィールド/プロパティを繰り返し処理するにはどうすればよいですか」)> Reflection、おそらく&与えられたワークセットすべての答えはhtmlのように見えるので、もしあなたが疑問に思うのであれば、実際は反復についてですが、ちょっとした説明が必要かもしれません。 – tolanj