Как убрать разрывы строк - PullRequest
       2

Как убрать разрывы строк

1 голос
/ 03 августа 2011

Я просто не понимаю, почему вывод не отображается правильно

Вот мой код просмотра

@model IEnumerable<TheSite.Post>
@{
    ViewBag.Title = "Index";
    Layout = null;
}
document.write('<table>

@foreach (var p in Model)
{
    <tr>
        <td>
            <a href="@p.Url">@p.Title</a>
        </td>
    </tr>
}

</table>');

Вот вывод:

document.write('<table>

    <tr>
        <td>
            <a href="http://www.test.com">test</a>
        </td>
    </tr>

</table>');

Здесьэто вывод, который мне нужен:

document.write('<table><tr><td><a href="http://www.test.com">test</a></td></tr></table>');

Я пытался использовать string Builder, но вывод был экранирован.

Ответы [ 4 ]

2 голосов
/ 03 августа 2011

Механизм просмотра сохраняет разрывы строк и пробелы для создания разборчивого HTML.

Я не понимаю, почему вы ожидаете, что они будут удалены автоматически, но простой идеей было бы не вставлять их в первую очередь:

  document.write('<table> @foreach (var p in Model){<tr><td> ... }</table>');

Теперь это, вероятно, не компилируется, просто основная идея.
Это должно скомпилировать. Просто уродливый макет.

1 голос
/ 03 августа 2011

Создайте его с помощью StringBuilder и используйте:

@Html.Raw(builder.ToString())

Html.Raw на MSDN

0 голосов
/ 03 августа 2011

Вы можете использовать string Builder с @Html.Raw(), чтобы избежать экранирования символов HTML. Вы можете добавить символ "\" в каждую строку html, чтобы экранировать новые строки в js, но я бы не рекомендовал этого. Вместо этого я бы использовал "+"

document.write('<table>' + 
 @foreach (var m in Model) {
   '<tr><td>@m</td></tr>'
 }
 + '</table>');

Или вы можете написать вспомогательный метод, который будет возвращать экземпляр IHtmlString (что-то вроде return new HtmlString(yourStringBuilder.ToString());

0 голосов
/ 03 августа 2011

У Хенка правильная идея в комментариях, просто вставьте в строку так, как вы этого хотите.

Если исключить это, вы можете попробовать использовать Replace.

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