【发布时间】:2011-06-13 20:02:02
【问题描述】:
我真的不认为这与 ASP.NET MVC 2 本身有任何关系,但我提到它是我工作的环境,并且我的问题的至少一个方面与 MVC 2 的方式有关行为。我的问题是这样的:
我在一个允许输入多行数据的表单上有一个 TEXTAREA 元素。当表单回传到服务器时(使用 IE8),我可以看到数据的格式为“A\n\rB\n\rC\n\rD”。然后我将这些数据保存到一个数据库表中,它的显示方式完全相同。但是,当我稍后返回该页面,从数据库加载数据并将其设置为 TEXTAREA 元素的值时,它会将“\n\r”显示为文字字符而不是换行符!
附带说明,对于 ASP.NET MVC,如果我遵循标准的 if (!ModelState.IsValid) return View(viewModel); 方法,则在重新呈现相同的表单时,由于验证错误,TEXTAREA 显示正常。这告诉我,问题一定与向(SQL Server)数据库持久化和检索数据有关。
我在 FireFox 和 Chrome 中遇到了同样的显示问题,显着的区别是从这些浏览器提交的数据格式为“A\r\nB\r\nC\r\nD”。
由于这些行为差异,我如何处理来自 TEXTAREA 的持久多行数据,这些数据将在所有浏览器中正确呈现?
【问题讨论】:
标签: asp.net-mvc-2 cross-browser textarea