这是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);
}
此方法是在更改textarea时触发的。 当它到达console.log时,它会写出当前在textarea中的正确文本,但是当它将数据发布到我的控制器方法时,它只会收到一些内容。 这是为什么?
答案 0 :(得分:0)
你很可能有非法字符'在你的textarea中,尝试转义内容变量,改变它:
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()是那里的重要部分。
答案 1 :(得分:0)
由于这是get而不是post,因此在get请求中可以发送的数据长度有限,这取决于浏览器。你还想确保你没有任何需要转义的角色。例如。在网址中使用的章程如?或者&要么 /。你可以通过使用来逃避这些。
var contentToPass = encodeURIComponent(content);
答案 2 :(得分:0)
试试这个:
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);
}