1

我有一些文本,存储在表格中。我正在使用 asp.net mvc 来显示这个。

我的一个观点,有以下几点:

<%=(Model.QuestionBody.Replace("\r\n", "<br/>").Replace ("\r", "<br/>")) %>

像这样,它显示正确但是,如果我省略 .Replace,它将全部显示在一行上。

但是,在 TextBox 中显示的相同数据以正确的格式显示。

我的问题是 - 有没有更好的方法在我的视图中显示文本?

4

4 回答 4

4

您可以将文本放在“pre”标签中。

<pre>
   <%= Model.QuestionBody %>
</pre>

然而,通常这种文本以包含
标签的 html 形式存储在数据库中。

于 2010-09-13T16:23:26.173 回答
2

我认为是同一个问题,不是吗?如果是这样,解决方案可能是相同的。

于 2010-09-13T18:00:50.020 回答
0

这是一种方便的花花公子扩展方法,我用它来格式化带有新行的字符串。它在 vb 中,所以如果你的 ac# 类型的人需要一些调整。但它可以工作并使视图保持整洁。

        <Extension()> _
        Public Function FormatForDisplay(ByVal stringToFormat As String) As String

            If Not String.IsNullOrEmpty(stringToFormat) Then

                stringToFormat = Replace(stringToFormat, vbCrLf, "<br />")
                stringToFormat = Replace(stringToFormat, vbCr, "<br />")
                stringToFormat = Replace(stringToFormat, vbLf, "<br />")
                Return stringToFormat
            End If

            Return stringToFormat

        End Function

那么在您看来,您将拥有:

<%=(Model.QuestionBody.FormatForDisplay()) %>
于 2010-09-13T16:28:35.550 回答
0

最好的方法...没有转换...

@model MyNameSpace.ViewModels.MyViewModel

@{
  ViewBag.Title = "Show formatted text";
}

@using (Html.BeginForm())
{
  <div class="h3">
    <span style="white-space: pre-wrap">@Model.myText</span>
  </div>

}

于 2016-03-07T19:05:11.073 回答