我将ASP Classic应用程序迁移到ASP.Net MVC 5.遗留数据在文本中包含<BR>
个标记。在旧应用程序(仍在使用中)中,标记呈现为换行符。使用普通的html <textarea>
标记创建和显示数据。例如,轧辊轧制数列表在多行中的单个字段中输入。如何在MVC中保留此行为?我试过了:
@Html.TextAreaFor(model => model.MillRoll, new { @class = "form-control" })
结果是一个输入控件显示一行多个Mill Rolls,每个卷号之间带有<BR>
标签,而不是显示多行。我对将数据分成另一个表并不感兴趣。新的应用程序需要像旧的允许进入和在单个输入控件中保存多行。我想为自己和用户简单地过渡到MVC应用程序。
答案 0 :(得分:0)
您可以使用属性动态转换数据
替换“&lt; br&gt;”使用“\ r \ n”和返回(您也可以使用System.Environment.NewLine而不是“\ r \ n”)。
因此,当您获得遗留数据时,将“&lt; br&gt;”替换为“\ r \ n”,然后它应该显示确定为textarea。如果您需要使用&lt; br&gt;保存旧版格式的更改,只需更换“\ r \ n”与&lt; br&gt;并保存。
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 >");}
}