Asp.net mvc 2 ASP.NET MVC 2中文本区域换行的问题

Asp.net mvc 2 ASP.NET MVC 2中文本区域换行的问题,asp.net-mvc-2,cross-browser,textarea,Asp.net Mvc 2,Cross Browser,Textarea,我真的不认为这与ASP.NET MVC 2本身有任何关系,但我提到,因为这是我工作的环境,我的问题至少有一个方面与MVC 2的行为方式有关。我的问题是: 我在表单上有一个TEXTAREA元素,允许输入多行数据。当表单发回服务器(使用IE8)时,我可以看到数据的格式是“A\n\rB\n\rC\n\rD”。然后,我将这些数据保存到一个数据库表中,在该表中,数据的显示方式完全相同。但是,当我稍后返回页面,从数据库加载数据并将其设置为TEXTAREA元素的值时,它将“\n\r”显示为文字字符,而不是换行

我真的不认为这与ASP.NET MVC 2本身有任何关系,但我提到,因为这是我工作的环境,我的问题至少有一个方面与MVC 2的行为方式有关。我的问题是:

我在表单上有一个TEXTAREA元素,允许输入多行数据。当表单发回服务器(使用IE8)时,我可以看到数据的格式是“A\n\rB\n\rC\n\rD”。然后,我将这些数据保存到一个数据库表中,在该表中,数据的显示方式完全相同。但是,当我稍后返回页面,从数据库加载数据并将其设置为TEXTAREA元素的值时,它将“\n\r”显示为文字字符,而不是换行符

另外,对于ASP.NET MVC,如果我遵循标准
if(!ModelState.IsValid)返回视图(viewModel)方法,由于验证错误,在重新呈现相同表单时,文本区域显示良好。这告诉我,问题一定与持久化和从(SQL Server)数据库检索数据有关

我在FireFox和Chrome中也有同样的显示问题,显著的区别在于从这些浏览器提交数据时,数据格式为“A\r\nB\r\nC\r\nD”


有了这些行为上的差异,我如何处理文本区域中的多行数据,这些数据将在所有浏览器中正确呈现?

我还没有找到实际的解决方案,但已经实现了解决方法

当我将对象上的属性设置为TEXTAREA中提交的值时,我会对文本执行正则表达式替换,以将浏览器返回的任何字符转换为“\n”,该字符在我选中的所有浏览器(IE8、Chrome和FireFox)中都作为换行符使用。以下是我正在使用的代码(在.NET中):


如果要呈现文本,应将\r\n char替换为
标记,并创建一个MvcHtmlString,我使用以下方法:

@(MvcHtmlString.Create(Model.Text.Replace("\r\n","<br/>").Replace("\n\r","<br/>)))
@(MvcHtmlString.Create(Model.Text.Replace(“\r\n”、“
”)。Replace(“\n\r”、“
”))
文本是来自文本区域的文本,我已经测试了这行代码,它在所有五种主要浏览器(即FF、Chrome、Opera、Safari)上都能正常工作

@(MvcHtmlString.Create(Model.Text.Replace("\r\n","<br/>").Replace("\n\r","<br/>)))