Quando uso o método jquery Ajax POST para o controlador como:
var data = {
ID: '1',
name: 'TEST',
}
$.ajax({
type: "POST",
data: JSON.stringify(data),
dataType: "json",
contentType: "application/json; charset=utf-8",
url: url,
.............
})
Meu backend não funciona quando uso o parâmetro string como:
//C#
[HttpPost]
public bool ActionName(string ID, string name){
}
Mas funciona quando usamos objetos como:
//C#
[HttpPost]
public bool ActionName(object data){
}
Não sei porque nessa situação
Quando um método de ação tem definição como
isso significa que a chamada correspondente
.ajax()
deve passar dois parâmetros diferentes para o método, mas não um objeto encapsulando esses dois parâmetros como na pergunta acima.Portanto, para chamar o método acima tente usar o seguinte fragmento de código:
Omiti o
contentType
parâmetro e usei o valor padrãoapplication/x-www-form-urlencoded; charset=UTF-8
, porque os parâmetros são vinculados usando os cabeçalhos de solicitação.