私はこのようなヘルパーを持っています。次のように内部で生の HTML を使用してこれを作成しました。
private static readonly Core Db = new Core();
// Main menu
public static MvcHtmlString MainMenu()
{
IQueryable<Page> primaryPages = Db.Pages.Where(p => p.IsItShowInMenu);
var sb = new StringBuilder();
sb.Clear();
string pagecode = Convert.ToString(HttpContext.Current.Request.RequestContext.RouteData.Values["url"]);
sb.Append("<div id=\"Logo\">");
sb.Append("<a href=\"/\"><span id=\"Logo_Text\">Dr. Shreekumar</span></a> <span id=\"Logo_Sub_Text\">Obstetrician & Gynecologist</span>");
sb.Append("</div>");
sb.Append("<div id=\"Primary_Menu\">");
sb.Append("<ul>");
foreach (Page page in primaryPages)
{
if (page.PageCode != "Home")
{
Page currentPage = Db.Pages.SingleOrDefault(p => p.PageCode == pagecode);
if (currentPage != null)
{
Page parentPage = Db.Pages.Find(currentPage.ParentId);
if (parentPage != null)
{
sb.AppendFormat((page.PageCode == parentPage.PageCode ||
page.PageCode == currentPage.PageCode)
? "<li class=\"active\"><a href=\"/pages/{0}\">{1}</a></li>"
: "<li><a href=\"/pages/{0}\">{1}</a></li>", page.PageCode,
page.Name.Trim());
}
else
{
sb.AppendFormat("<li><a href=\"/pages/{0}\">{1}</a></li>", page.PageCode,page.Name);
}
}
else
{
sb.AppendFormat("<li><a href=\"/pages/{0}\">{1}</a></li>", page.PageCode, page.Name);
}
}
}
sb.Append("</ul>");
sb.Append("</div>");
return new MvcHtmlString(sb.ToString());
}
MVC HTML ヘルパー (アンカー、リスト (li)、div などのヘルパー) を使用してこれを変換する方法を教えてください。