Asp.net Web 服务无法将类型为 'System.Int32' 的对象转换为 ty...内里克。IDictionary'2[System.String,System.Object]'



我一直在尝试使用 Angular 调用 Web 服务

我已经测试了 Web 服务并使用 Postman 发送请求,它工作正常。

下面是 Web 服务的代码

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
// [System.Web.Script.Services.ScriptService]
public class Temperature : System.Web.Services.WebService
{
[WebMethod]
public double Farenheit(double celsius)
{
return  (celsius * 9) / 5 + 32;
}
[WebMethod]
public double Celsius(double fahrenheit)
{
return (fahrenheit - 32) * 5 / 9;
}
}

这是我的角度代码

const httpOptions = {
headers: new HttpHeaders({
'Content-Type':  'application/json',
})
};
this.http.post('https://localhost:44389/Temperature.asmx/Celsius', 50,  httpOptions)
.subscribe(res => {
console.log('Data: ' + res);
})

该方法接受 Int 数据类型。我传递的是整数50。那么为什么我会收到此错误。我不明白为什么

ExceptionType: "System.InvalidOperationException"
Message: "Cannot convert object of type 'System.Int32' to type 'System.Collections.Generic.IDictionary`2[System.String,System.Object]'"
StackTrace: "   at System.Web.Script.Serialization.ObjectConverter.ConvertObjectToTypeInternal(Object o, Type type, JavaScriptSerializer serializer, Boolean throwOnError, Object& convertedObject)
↵   at System.Web.Script.Serial

这是邮递员要求集的截图

在此处输入图像描述

您需要传递:

{fahrenheit: 50}

而不是:

50

这是因为现有代码传递了一个数字,但不指示它映射到哪个参数。通过显式提及fahrenheit服务器端能够将50值映射到相应的方法参数。

相关内容

  • 没有找到相关文章

最新更新