我有一些文字,存储在表中。我正在使用ASP.NET MVC来显示此信息。

我的观点之一,有以下内容:

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

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

但是,在文本框中显示的相同数据的格式正确。

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

有帮助吗?

解决方案

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

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

但是通常,这种文本存储在数据库中,例如HTML
标签。

其他提示

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

这是我用来用新线条格式化字符串的方便的花花公子扩展方法。它在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()) %>

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

@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>

}

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top