2014-07-15 24 views
0

我希望在新行上分割字符串,並根據行號和行的開​​頭格式化每行不同的行。在新行上分割一個字符串,並根據行號將每行的格式設置爲不同,具體取決於行號

我發現了一個例子至極可能是我的任務(stackoverflow)不錯:

@Html.Raw(Html.Encode(Model[i].Services[j].ServiceDescription).Replace("\n", "<br />")) 

但這需要還是有些此外,如:

  • 第一行:大標題,在格式化它(。 (​​)
  • 第二行:中間標題,格式化它(<h4> text from that model </h4>
  • 第三行:普通文本,不帶形式阿婷比三線大
  • :如果 「模型[I]。服務[J] .ServiceDescription」 包含 「 - 」 不是每一個新的打印<ul><li>Model[i].Services[j].ServiceDescription</li><ul> 「 - 」 將其添加到它想: <ul> <li>Model[i].Services[j].ServiceDescription first "-"text </li><li>Model[i].Services[j].ServiceDescription second "-"text </li> <ul>

我想我可以去這樣的:

<h1>@Html.Raw(Html.Encode(Model[i].Services[j].ServiceDescription).Replace("\n", "<br />"))</h1> 

但這將格式化與<h1>說明整個文本,所以我需要怎樣的一個for -loop和if的迭代通過量的字符串,可能是這樣的:

no JavaScript, but c# (I put this into fiddler,because I couldn't format it here)

一個例子輸入看起來像:

「第一行\ r \ n第二線\ r \ nThird線\ r \ n個第Li_Element \ r \ n第二Li_Element \ r \再次正常文本。「

順便說一句,我發現這樣的東西split up a string on new lines

我怎麼能意識到這一點,我不知道如何把所有的單一部分放在一起,以工作代碼?

UPDATE: 我做了這樣的事情:

@BWHtml.ToParagraphs(Model[i].Services[j].ServiceDescription) 

我做了這樣的事情:

click

UPDATE(終): final

您是否看到有關安全問題或提高性能方面的任何建議的此代碼有任何危險?

+0

已更新,更接近解決方案 – user254197

+0

再次更新。您是否看到有關安全問題(XSS漏洞..)的此代碼有任何危險或有任何改進性能的建議? http://jsfiddle.net/K85K7/3/ – user254197

回答

1

看起來,自定義HTML助手是你的方式,創建方法CustomHtmlHelper.FormatParagraphs,分割給定的字符串的行,修改它爲您的需要,並返回MvcHtmlString

有關Creating Custom HTML Helpers的其他信息。

相關問題