将html内容发布到控制器方法会删除部分内容
posting html content to controller method removes part of content
这是js函数:
var onContentChange = function () {
var content =
$("#blogpost-content").data("kendoEditor").value($("#value").val());
console.log(content);
$http.post("/Map/SaveBlogPostContent?destinationId=" +
$("#currentDestinationId").val() +
"&blogPostId=" + $("#currentBlogPost").val() + "&content=" + content)
.then(onSaveBlogPostContent, onError);
}
此方法是在更改文本区域时触发的。当它到达console.log时,它会写出当前文本区域中的正确文本,但当它将数据发布到我的控制器方法时,它只接收一部分内容。为什么会这样?
很可能您的文本区域中有"非法字符",请尝试转义内容变量,并将其更改为:
var onContentChange = function () {
var content = $("#blogpost-content").data("kendoEditor").value($("#value").val());
console.log(content);
$http.post("/Map/SaveBlogPostContent?destinationId=" + encodeURIComponent($("#currentDestinationId").val()) + "&blogPostId=" + encodeURIComponent($("#currentBlogPost").val()) + "&content=" + encodeURIComponent(content))
.then(onSaveBlogPostContent, onError);
}
encodeURIComponent()是其中的重要部分。
由于这是一个get而不是post,在get请求中可以发送的数据长度有限制,这将取决于浏览器。你还需要确保你没有任何需要转义的字符。例如,url中使用的特许状,如?或者&或/。你可以通过使用来逃避这些。
var contentToPass = encodeURIComponent(content);
请参阅此处encodeURIComponent
试试这个:
var onContentChange = function () {
var content =
$("#blogpost-content").data("kendoEditor").value($("#value").val());
console.log(content);
$http.post("/Map/SaveBlogPostContent", {
destinationId: $("#currentDestinationId").val(),
blogPostId: $("#currentBlogPost").val(),
content: content
}).then(onSaveBlogPostContent, onError);
}
相关文章:
- 从数组中删除元素的最佳方法是:javascript/jquery
- Es6:能够在设置/更新/删除对象属性时调用自定义方法
- 添加/删除/更改输入文本的部分值
- 从数组JavaScript中删除并返回最后n个项的最快方法
- 在jquery中是否有任何方法或位置可以编写从Dom中删除页面后调用的方法
- 什么'是删除WinJS ListView中所有项目的最快方法
- 如何更改/删除同级方法
- 有没有更简洁的方法可以从带有 lodash 的数组中删除条目
- 如何在jquery中使用单个取消删除方法删除多个事件委托
- Javascript-仅使用pop()方法删除数组中的负值
- 方法删除更多需要的项
- 如何通过javascript触发rail的数据方法=“删除”
- 使用 DOM 方法删除图像元素
- 可以解包() 方法删除正文元素
- 对象不支持属性或方法“删除”
- 在Javascript中处理元素和使用Jquery Remove方法删除元素之间有什么区别
- Javascript .close ()/.next()/.siblings()方法删除表
不工作 - AngularJS:如何使用$destroy方法删除一个元素?
- 使用removeEvents方法删除特定事件
- Jquery .clone()方法.删除克隆