HTML<;text区域>;仅发送'; ';返回服务器
本文关键字:返回 服务器 gt lt text 区域 HTML | 更新日期: 2023-09-27 18:26:41
我们的应用程序既有.NET脱机应用程序(WinForms和WPF),也有联机ASP.NET MVC。
我们的离线应用程序代表带有/r/n(回车+换行)的新线。
当我们把这些放在在线表单上,特别是文本区域上时——如果用户更改了文本区域中的任何内容,浏览器会自动从文本中删除所有/r字符。从而打破了线下同行。
奇怪的是,如果用户没有更改任何内容,回车符就会保留下来。
理想情况下,我不想逐个解决这个问题,因为这会浪费很多精力。
有没有什么方法可以使用MVC筛选器转换不存在的地方。或者,如果这不可能,我们已经在使用JSON.NET值提供程序工厂来解析这里讨论的JSON了——也许我可以在这一点上截取字符串值?
其他人对此有经验吗?我的最佳选择是什么?
由于时间紧迫,我不得不快速实现一些东西,所以我在JsonNetValueProviderFactory
中添加了一些东西,它只做一些Regex替换。可能不是最快的事情,但似乎能奏效。
我会暂时不回答这个问题,以防出现更好的解决方案。
private static readonly System.Text.RegularExpressions.Regex _orphanEOLChecker =
new System.Text.RegularExpressions.Regex(@"((?<!'r)'n)|('r(?!'n))",
System.Text.RegularExpressions.RegexOptions.Compiled &
System.Text.RegularExpressions.RegexOptions.Multiline);
private const string _newLineReplacement = "'r'n";
private static string FixCarriageReturns(string val)
{
if (string.IsNullOrEmpty(val))
return val;
return _orphanEOLChecker.Replace(val, _newLineReplacement);
}