这是我的Javascript函数:
function myFunction() {
var grid = $('#GridName').data('tGrid');
var data = JSON.stringify(grid.data);
var window = $('#Window').data('tWindow');
window.content('<%= Resources.Global.Loading %>');
window.contentUrl = '<%= Url.Action("MyMethod", "MyController") %>' + '?data=' + data;
...
}
获取网格数据,将其转换为字符串并将其作为参数发送给MyMethod。
不幸的是,数据是一个非常长的字符串,此功能不起作用。我试过发送子串,确实有一个字符数的截止点。
有没有办法解决这个限制,或采取不同的方式?
谢谢!
答案 0 :(得分:0)
上述评论的副本:
您可以使用AJAX POST
到该URL,然后在响应回调中,您可以:(1)捕获视图HTML,以及(2)尝试使用window.content(response);
替换窗口HTML。
有许多在线使用AJAX的教程(本地或通过像jQuery这样的库),所以我将把它留给你作为练习。
为什么会这样?通过POST
提交表单通常允许向服务器提交的数据多于您通过GET
在URL中发送的数据(URL参数是GET请求的一部分,而POST
则编码数据作为请求标题的一部分。)
答案 1 :(得分:0)
这就是诀窍:
function myFunction() {
var grid = $('#Grid').data('tGrid');
var data = JSON.stringify(grid.data);
var window = $('#Window').data('tWindow');
window.content('<%= Resources.Global.Loading %>');
$.ajax({
type: 'Post',
cache: false,
url: '<%= Url.Action("MyMethod", "MyController") %>',
dataType: 'html',
data: { data: data },
success: function (e) {
window.content(e);
}
});
...
}