2015-03-06 25 views
5

Tôi đang cố gắng chuyển chuỗi mảng tới phương thức Web Api chấp nhận một chuỗi các chuỗi làm đối số. Bellow phương pháp Api Web của tôiVượt qua mảng chuỗi dưới dạng dữ liệu trong jquery ajax tới trang web api

[HttpGet] 
    public string HireRocco(string[] hitList) 
    { 
     string updateList = string.Empty; 
     return updateList; 
    } 

ajax My

var uri = 'http://localhost:16629/api/AssassinApi/HireRocco', 
hitList = ['me', 'yourself']; 

$.ajax({ 
    url: uri, 
    type: 'GET', 
    data: { hitList : hitList }, 
    cache: false, 
    dataType: 'json', 
    async: true, 
    contentType: false, 
    processData: false, 
    success: function (data) { 
    }, 
    error: function (data) { 
    } 
}); 

Các ajax trên lượt truy cập thành công phương pháp HireRocco nhưng hitList param vẫn null. Những gì tôi nên thay đổi để vượt qua một mảng các chuỗi như param.

+0

'type: 'POST' '? –

+0

@Rakesh_Kumar: phương thức GET của nó, dù sao nếu tôi tạo POST, nó sẽ không giải quyết được vấn đề – Riki

Trả lời

0

Xóa contentType: false sau đó đặt processData thành true để có thể nối thêm postData url của bạn, vì đó là cách yêu cầu get hoạt động hoặc bạn sẽ phải thay đổi api để chấp nhận yêu cầu POST được đặt qua tiêu đề.

$.ajax({ 
    url: uri, 
    type: 'GET', 
    data: { hitList : hitList }, 
    cache: false, 
    dataType: 'json', 
    async: true, 
    processData: true, 
    success: function (data) { 
     console.log(data); 
    }, 
    error: function (data) { 
    } 
}); 
3

Nếu bạn cần phải gửi dữ liệu thông qua một HttpGet, bạn có thể thêm [FromUri] bạn có thể chỉnh sửa hành động điều khiển của bạn như sau và JavaScript nên hoạt động như là:

[HttpGet] 
public string HireRocco([FromUri] string[] hitList) 
{ 
    string updateList = string.Empty; 
    return updateList; 
} 
0

Trước hết tôi đề nghị bạn sử dụng POST thay vì GET. tạo một mảng javascript. đẩy dữ liệu bên trong nó. gửi nó đến phương thức hành động api web bằng cách sử dụng JSON.Stringify .. và sau đó xử lý logic tiếp theo.

Trong api web tạo một biến mô hình .. và tạo ra một đối tượng danh sách ..

Tiếp theo là mã ..

Javascript

var demoarray=[]; 
demoarray.push({"test1":"hi", "test2":"hello"}); //test1 and test2 are model variable names in web api and hi and hello are their values 

bạn có thể lặp lại quá trình này trong vòng lặp for hoặc một cái gì đó để thêm nhiều giá trị.

$.ajax({ 
     url:"http://localhost..", 
     type: "POST", 
     data: JSON.Stringify(demoarray), 
     contentType: "application/json", 
     success: function(data) 
       { 
       }, 
     error: function(data) 
      { 
      } 
     }); 

WEB API Mã Tạo một lớp mô hình và hai thuộc tính

public string test1 {get; set;} 
public string test2 {get; set;} 

mã điều khiển

[Httppost] 
public void actionmethod(List<modelclass> obj) 
{ 
    int i=0; 
    for(i=0; i<obj.count; i++) 
    { 
    //your logic 
    } 
} 
Các vấn đề liên quan