在本地直接浏览webservice,并调用webmethod时,由于方法中有Int型参数,就一直报错
错误代码如下:
System.ArgumentException: 无法将 转换为 System.Int32。
参数名: type ---> System.FormatException: 输入字符串的格式不正确。
在 System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
在 System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
在 System.String.System.IConvertible.ToInt32(IFormatProvider provider)
在 System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
在 System.Web.Services.Protocols.ScalarFormatter.FromString(String value, Type type)
--- 内部异常堆栈跟踪的结尾 ---
在 System.Web.Services.Protocols.ScalarFormatter.FromString(String value, Type type)
在 System.Web.Services.Protocols.ValueCollectionParameterReader.Read(NameValueCollection collection)
在 System.Web.Services.Protocols.HtmlFormParameterReader.Read(HttpRequest request)
在 System.Web.Services.Protocols.HttpServerProtocol.ReadParameters()
在 System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()
请帮忙解答,谢谢!!!
------解决方案--------------------
输入字符串的格式不正确,你输入的内容有问题吧,是否符合转换规则
------解决方案--------------------
我什么值也没有传,直接调用的,
[WebMethod]
public ReturnResult Register(string UserName, int UserType, string IpAddress,
string PassWord, string UserTrueName, string UserPhone, string IdCardNo, string RegisterTime
)
{}
这是方法名,里面有对username进行判断是否为空或NULL,可是方法一调用就直接报上面的错误,不知道是哪里出问题了,还是需要在方法调用前先去判断,怎么判断呢???
------解决方案--------------------
有人在吗??请帮忙解答一下啦,着急呢!!谢谢啦!!
------解决方案--------------------
不传参数,可以将参数设置为可空类型!
[WebMethod]
public ReturnResult Register(string UserName, int? UserType, string IpAddress,
string PassWord, string UserTrueName, string UserPhone, string IdCardNo, string RegisterTime
)
{}
------解决方案--------------------
webmethod里面只能传基本类型的数据,int?会无法识别
------解决方案--------------------
你重新刷新一下你的web引用试试
------解决方案--------------------
int要赋初值,根据异常信息是类型转换的错误。最好debug跟进看看。
------解决方案--------------------
使用单步调试查看,应该是类型传入错误。
你的webmethod 定义了 int 类型参数,传值的时候 确定是 int 了嘛?