将json数据传递给URL?

时间:2013-05-16 09:41:05

标签: jquery asp.net-mvc json

当前脚本:

var IrregularChartParams = InitializeChartParams();

// parametreleri json stringe cevir...
var chartParams = JSON.stringify(IrregularChartParams);

$.ajax({
    url: '/Widget/GridExportToExcel',
    type: 'POST',
    contentType: 'application/json; charset=utf-8',
    data: chartParams,
    ....

控制器

public void GridExportToExcel(IrregularChartParams chartParams)
{

我想要一些如下内容:

// I know this does not work...
var url = '/Widget/GridExportToExcel' + chartParams
window.open(url);

使用模型绑定将json数据添加到url的简单方法是什么?

2 个答案:

答案 0 :(得分:1)

可能我无法解释,但我找到了一个解决方案,我不知道,它是最好的,但它有效

var IrregularChartParams = InitializeChartParams();
var url = '/Widget/GridExportToExcel?' + $.param(IrregularChartParams, true);
window.open(url);

答案 1 :(得分:1)

<强> 1 如果InitializeChartParams()函数返回一个名称 - 值对,则不需要任何操作,但将请求方法更改为GET

var IrregularChartParams = InitializeChartParams();

// parametreleri json stringe cevir...
// var chartParams = JSON.stringify(IrregularChartParams);
var chartParams = IrregularChartParams; 

$.ajax({
    url: '/Widget/GridExportToExcel',
    type: 'GET',
    contentType: 'application/json; charset=utf-8',
    data: chartParams,
    ....

<强> 2 如果InitializeChartParams()未返回名称 - 值集合,则您可以按照$.param中的IrregularChartParams将其内容作为查询字符串附加到您的答案中。

第3: 如果需要,可以将var IrregularChartParams = InitializeChartParams(); var chartParams = JSON.stringify(IrregularChartParams); $.ajax({ url: '/Widget/GridExportToExcel', type: 'GET', contentType: 'application/json; charset=utf-8', data: {sp: chartParams}, and action method: public void GridExportToExcel(string cp) { var chartParams = JsonConvert.DeserializeObject<IrregularChartParams>(json); ... } 作为单个查询字符串项传递给服务器,并在服务器上反序列化它:

{{1}}