这是我的 jQuery 代码正在执行的操作:
$('.newCommentBox form').live('submit', function () {
//Submit the form post
$.post($(this).attr('action'), $(this).serialize(), function (data) { showNewComment(data) });
return false;
});
每当提交表单时,我都会获取结果,将其序列化,然后通过 POST 将它们发送到特定操作。当我们从服务器收到响应时,我调用 showNewComment 函数来实时显示正在添加的评论。
这是我的问题:我需要能够保留人们在评论中留下的空白,以便他们可以控制较长评论的可读性。我使用 .NET Html 辅助方法将 CRLF 换行符转换为 <br/>
渲染注释时会添加标签,但是当通过 jQuery 提交表单并通过 JSON 序列化表单时,所有这些行结尾都不会保留,而当我在没有 AJAX 的情况下执行此操作时,它工作得很好。
如何保留这些行结尾,或者 jQuery 用什么替换 CRLF 行结尾?
最佳答案
使用ajax,我看到换行符被发布为\r\n 和\n ,具体取决于浏览器和环境,但总的来说,我发现检查\n 并将其替换为 <br />
是最安全的选择。
例如在 C# 中:
"Hello\nWorld".Replace("\n", "<br />");
or
"Hello\r\nWorld".Replace("\n", "<br />");
关于jquery - ASP.NET MVC + jQuery - 当我通过 jQuery $.post 表单时,如何保留 .NET 行结尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5401564/