1

テーブルに保存されているテキストがあります。これを表示するためにasp.netmvcを使用しています。

私の見解の1つは、次のとおりです。

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

このように正しく表示されますが、.Replaceを省略すると、すべてが1行に表示されます。

ただし、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

最良の方法...変換なし...

@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 に答える
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 に答える