gpt4 book ai didi

c# - HTML <textarea> 仅将 '\n' 发送回服务器

转载 作者:行者123 更新时间:2023-11-30 12:27:10 24 4
gpt4 key购买 nike

我们的应用程序既有 .NET 离线应用程序(WinForms 和 WPF),也有在线 ASP.NET MVC。

我们的离线应用程序用/r/n(回车 + 换行)表示新行。

当我们将这些放在在线表单上时,特别是文本区域 - 如果用户更改文本区域中的任何内容,浏览器会自动从文本中删除所有/r 字符。从而打破线下同行。

奇怪的是,如果用户不做任何更改,回车符会被保留。

理想情况下,我不想根据具体情况来解决这个问题,因为那样会浪费很多精力。

有什么方法可以使用 MVC 过滤器转换\n =>\r\n\r 不存在的地方。或者,如果这不可能,我们已经在使用 JSON.NET 值提供程序工厂来解析 JSON as discussed here - 也许此时我可以拦截字符串值?

有没有其他人对此有任何经验,我最好的选择是什么?

最佳答案

由于时间紧迫,我不得不快速实现一些东西,所以我在 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);
}

关于c# - HTML &lt;textarea&gt; 仅将 '\n' 发送回服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26404692/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com