jQuery ajax - 通过GET传递多个参数

时间:2016-03-16 01:58:54

标签: c# jquery json ajax asp.net-mvc

我有一个ajax方法,可以使用GET根据过滤条件检索局部视图。但是,除非它们都是原始类型,否则我似乎无法传递多个参数。不会抛出任何错误,只是以null传入。

$.ajax({
    cache: false,
    type: "GET",
    dataType: 'json',
    contentType: 'application/json, charset=utf-8',
    url: '/DataManagement/GetDataPartialView',
    data: { configFilter : filter, Name: "SomeValue"},
    success: function (data) {
       $('#divManagement').html(data);
    },
    error: function (xhr, ajaxOptions, thrownError) {
        alert('Failed...');
    }
});

控制器

[HttpGet]
public ActionResult GetDataPartialView(ConfigFilter configFilter, string Name)
{
    ....
    return PartialView("_DataPartialView.tmpl", model);
}

模型

public class ConfigFilter
{
    public string ConnectionString { get; set; }
    public string UserId { get; set; }
    public string AppKey { get; set; }
}

如果我通过,它可以工作......但我需要传递两个参数。

1 个答案:

答案 0 :(得分:3)

您需要更改传递的数据对象以与方法中的模型/参数相关联

$.ajax({
    cache: false,
    type: "GET",
    dataType: 'html', // your returing a view
    // contentType: 'application/json, charset=utf-8', remove
    url: '@Url.Action("GetDataPartialView", "DataManagement")', // don't hard code
    data: { ConnectionString: 'xxx', UserId: 'xxx', AppKey: 'xxx', Name: 'xxx' },
    success: function (data) {
       $('#divManagement').html(data);
    },
    error: function (xhr, ajaxOptions, thrownError) {
        alert('Failed...');
    }
});

请注意,您的方法是返回html,而不是json