微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ASP.NET MVC + jQuery-通过jQuery $ .post表单时,如何保留.NET行尾?

如何解决ASP.NET MVC + jQuery-通过jQuery $ .post表单时,如何保留.NET行尾?

| 这是我的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 />\");
    ,        一种替代方法是使用CSS空白属性来设置输出样式。
<div style=\"white-space: pre;\">
    Hello
World
</div>
应该呈现为
    Hello
World
保留制表符和行距 有关更多信息,请参见http://www.w3.org/TR/CSS2/text.html#white-space-prop     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。