Старый вопрос, но я был здесь, поскольку мне нужно было подобное решение.
Предположим, что вопрос на самом деле: как создать разделенный запятыми список HtmlString (MvcHtmlString) (как в заголовке вопроса и предположить, что автор / книги - просто дополнительная деталь, а не суть вопроса)
Вы могли бы использовать помощник по отображению, но это было бы не очень многократно (отдельный помощник для каждого свойства).
Моя первая попытка закончилась с закодированным выводом, поэтому придумала этот помощник (добавьте его непосредственно в cshtml):
@helper CommaSeparatedHtmlStringList(IEnumerable<MvcHtmlString> list)
{
@Html.Raw(list.First())
foreach (var item in list.Skip(1))
{
@Html.Raw(", ")
@Html.Raw(item)
}
}
используйте с:
@CommaSeparatedHtmlStringList(books.Select(book=>Html.ActionLink(book.Title, "Action")))
Затем я начал конвертировать в html-помощник, чтобы вы могли @Html.CommaSeparate(books.Selected...
), а затем понял, что вам просто нужна часть @ Html.Raw для вывода HtmlStrings / MvcHtmlStrings, то есть:
@Html.Raw(string.Join(", ", books.Select(book=>html.ActionLink...
Если вы все еще предпочитаетекод помощника:
public static MvcHtmlString CommaSeparated(this HtmlHelper helper, IEnumerable<MvcHtmlString> list)
{
return new MvcHtmlString(string.Join(", ", list));
}
используется с
@Html.CommaSeparated(books.Select(book=>html.ActionLink(book.Title, "Action"))))