Вы можете использовать тег <text>
или IHtmlString следующим образом:
@for (int i = 0; i < items.Length; i++)
{
if (i % 3 == 0)
{
<text><tr></text>
}
<td><a href="@(url[i])">@(title[i])</a></td>
if (i % 3 == 2)
{
@MvcHtmlString.Create("</tr>")
}
}
Редактировать
На моем сайте я решил это примерно так:
Создайте функцию, которая принимает шаблон в качестве параметра:
@functions {
public IHtmlString conditionalTag(bool condition, string tag, Func<object, HelperResult> template) {
var startTag = condition ? string.Format("<{0}>", tag) : "";
var endTag = condition ? string.Format("</{0}>", tag) : "";
return new HtmlString(string.Format("{0}{1}{2}", startTag, template(null).ToString(), endTag));
}
}
Вы можете вызвать эту функцию следующим образом:
@for (int i = 0; i < items.Length; i++)
{
@conditionalTag(i % 3 == 0, "tr", @<text>
<td><a href="@(url[i])">@(title[i])</a></td>
</text>)
}