Добавление текста в MvcHtmlString в Razor - PullRequest
2 голосов
/ 10 апреля 2011

Попытка использовать цикл для построения ряда строк таблицы в Razor:

MvcHtmlString filesList = MvcHtmlString.Create("");
foreach (var file in orderRow.Files)
{
    fileList = fileList + "<tr><td  colspan='2'><a href='http://@file.Location/file.FileName' target='_blank'>@file.Description </a></td></tr>";
}
    @filesList
}

Как объединить несколько экземпляров MvcHtmlString заставляет меня думать, что я на правильном пути с приведенным выше кодом, но я работаю против Razor и испытываю другой пробег.

ТНХ

Ответы [ 2 ]

2 голосов
/ 10 апреля 2011

Предполагается, что вы пишете статический метод в .cs файле :

Нет смысла.
MvcHtmlString на самом деле ничего не избегает; он просто говорит Razor / ASPX не убегать самому.

Вы должны собрать свою строку, как правило, используя StringBuilder, а затем вернуть new HtmlString(builder.ToString()).

Если вы находитесь на странице Razor, все это бессмысленно; см. другой ответ.

1 голос
/ 10 апреля 2011

Вы слишком усложняете проблему. Вам вообще не нужно создавать строку для вашей ситуации, поскольку вы просто выводите строку сразу после цикла. Вы можете сделать это:

@foreach (var file in orderRow.Files) {
    <tr><td  colspan='2'><a href='http://@file.Location/file.FileName' target='_blank'>@file.Description </a></td></tr>
}

http://weblogs.asp.net/scottgu/archive/2010/12/15/asp-net-mvc-3-razor-s-and-lt-text-gt-syntax.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...