Я работаю над сервисом ASMX.У меня есть метод с 3 входными параметрами, содержащими параметр типа INT и другой тип STRING.Во время тестирования, если я передаю строку в качестве параметра типа int, в браузере выдается исключение.Как справиться с этим исключением.Я попытался отладить, но отладчик даже не попал в функцию, исключение выдается еще до достижения внутренней части функции.Как я могу справиться с этим поведением.
Ниже приводится исключение:
System.ArgumentException: Невозможно преобразовать abc в System.Int32.Имя параметра: type ---> System.FormatException: входная строка была в неправильном формате.в System.Number.StringToNumber (String str, параметры NumberStyles, NumberBuffer & number, информация NumberFormatInfo, логический parseDecimal) в System.Number.ParseInt32 (String s, стиль NumberStyles, информация NumberFormatInfo) в System.String.System.IConvertible.Fomat32 (IFR)провайдера) в System.Convert.ChangeType (значение объекта, тип преобразование типа, провайдер IFormatProvider) в System.Web.Services.Protocols.ScalarFormatter.FromString (строковое значение, тип типа) --- конец трассировки стека внутренних исключений --- вSystem.Web.Services.Protocols.ScalarFormatter.FromString (строковое значение, тип Type) в System.Web.Services.Protocols.ValueCollectionParameterReader.Read (коллекция NameValueCollection) в System.Web.Services.Protocols.HtmlFormParameterReader.Reader.Reader.Reader.Readв System.Web.Services.Protocols.HttpServerProtocol.ReadParameters () в System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest ()
Это мой WebMethod:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public void GetAlbums(int langid,int type, string title)
{
langid = int.Parse(Microsoft.Security.Application.Encoder.JavaScriptEncode(langid.ToString()));
type = int.Parse(Microsoft.Security.Application.Encoder.JavaScriptEncode(type.ToString()));
title = Microsoft.Security.Application.Encoder.JavaScriptEncode(title);
var TheJson = "";
JavaScriptSerializer ser = new JavaScriptSerializer();
try
{
var userid = from x in db.viwTjdeedCmsTypeAlbums
where x.Lang_ID == langid
where x.Album_TypeID == type
where x.Album_Title.Contains(title)
where x.Album_Live == true
select x;
var jsonData = new
{
albums = userid.ToList()
};
TheJson = ser.Serialize(jsonData);
}
catch
{
TheJson = "Error finding Album";
Server.Transfer("ErrorPage.aspx");
}
HttpContext.Current.Response.ContentType = "application/json";
HttpContext.Current.Response.Write(TheJson);
}