Javascript Amplify.js+Asp.net Web Api发送多个参数
定义ajax调用的js代码:Javascript Amplify.js+Asp.net Web Api发送多个参数,javascript,jquery,asp.net,asp.net-web-api,amplifyjs,Javascript,Jquery,Asp.net,Asp.net Web Api,Amplifyjs,定义ajax调用的js代码: function InitDataServices() { amplify.request.decoders.myDecoder = function (data, status, xhr, success, error) { if (status === "success") { success(data); } else if (status === "fail"
function InitDataServices()
{
amplify.request.decoders.myDecoder =
function (data, status, xhr, success, error)
{
if (status === "success") {
success(data);
} else if (status === "fail" || status === "error") {
error(message, status);
} else {
error(message, "fatal");
}
};
amplify.request.define("Emision_FiltrarSeguros", "ajax", {
url: "http://localhost:63721/api/emision/filtrar",
type: "POST",
dataType: "json",
decoder: "myDecoder"
});
}
那么进行实际ajax调用的代码是:
function Emision_FiltrarSeguros(requestData,okFunction, failFunction)
{
amplify.request({
resourceId: "Emision_FiltrarSeguros",
contentType: "application/json",
data: JSON.stringify(requestData),
success: function (data) {
okFunction(data);
},
error: function (message, level) {
failFunction(message,level);
}
});
};
最后,在页面中输入以下代码以进行调用:
function FiltrarSeguros()
{
this.request = {Ramo:-1,
NroSocio: 107701,
NroSeguro:-1,
NroEndoso:-1,
Vigentes:0,
Patente:"" };
Emision_FiltrarSeguros(request,okFiltrarSeguros, failFiltrarSeguros);
}
控制器代码如下所示:
public List<FiltroSeguroResponse> Filtrar(FiltroSeguroRequest request)
{
return DLL.Service.EmisionService.FiltrarSeguros(request, "jdh");
}
问题在于,我从页面发布的数据从未映射到FiltroSeguroRequest类型的请求,其属性与我在ajax调用参数中构建的对象文本相同。
怎么了?谢谢。将内容类型添加到定义放大请求的位置,如下所示:
amplify.request.define("Emision_FiltrarSeguros", "ajax", {
url: "http://localhost:63721/api/emision/filtrar",
type: "POST",
dataType: "json",
decoder: "myDecoder",
contentType: 'application/json; charset=utf-8',
});
你能告诉我你从Fiddler那里得到的原始请求可能是什么样子的吗?我也面临着同样的问题,你成功地让它工作了吗,