繁体   English   中英

如何渲染和保存 <br> 标签使用@ Html.TextAreaFor作为换行符

[英]How to render and preserve <br> tags as line breaks using @Html.TextAreaFor

我正在将ASP Classic应用程序迁移到ASP.Net MVC5。旧数据在文本中包含<BR>标记。 在旧的应用程序(仍在使用中)中,标记显示为换行符。 数据是使用纯HTML <textarea>标记创建和显示的。 例如,在多个行的单个字段中输入轧辊编号列表。 如何在MVC中保留此行为? 我试过了:

@Html.TextAreaFor(model => model.MillRoll, new { @class = "form-control" })

结果是一个输入控件显示多个轧辊的单行,每个轧辊号之间带有<BR>标记,而不显示多行。 我对将数据分解到另一个表中不感兴趣。 新应用程序的行为必须与旧应用程序一样,允许在单个输入控件中输入和保存多行。 我想为自己和用户简化向MVC应用程序的过渡。

例如,您可以使用属性即时转换数据。
将“ <br>”替换为“ \\ r \\ n”,然后返回(也可以使用System.Environment.NewLine代替“ \\ r \\ n”)。
因此,当您获取旧数据时,将“ <br>”替换为“ \\ r \\ n”,然后应显示ok it textarea。如果您需要用<br>保存传统格式的更改,只需将“ \\ r \\ n”替换为< br>并保存。

public string myLegacyDataString;
public string MyDataString{
    get {return myLegacyDataString.Replace("< br >","\r\n");}
    set {myLegacyDataString = value.Replace("\r\n", "< br >");}
}

或使用NewLine:

public string myLegacyDataString;
public string MyDataString{
    get {return myLegacyDataString.Replace("< br >",System.Environment.NewLine);}
    set {myLegacyDataString = value.Replace(System.Environment.NewLine, "< br >");}
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM