Mam usługa sieci Web z metodą, która jest wywoływana za pośrednictwem obiektu xmlhttprequest w moim javascript. Metoda przyjmuje parametr datetime, który jest następnie konwertowany na ciąg znaków i uruchamiany w bazie danych w celu przeprowadzenia obliczeń.Właściwy format daty w usłudze sieci Web
uzyskać wartość od m_txtDateAdd i wysłać off XMLHttpRequest
<asp:textbox id=m_txtDateAdd tabIndex=4 runat="server" Width="96px" Text="<%# Today %>">
</asp:textbox>
który ma walidator attacted niej
<asp:CustomValidator id="m_DateAddValidator" runat="server" ErrorMessage="Please Enter a Valid Date" ControlToValidate="m_txtDateAdd">●</asp:CustomValidator>
Moje WebMethod wyglądać tak
[WebMethod]
public decimal GetTotalCost(DateTime transactionDate)
{
String sqlDateString = transactionDate.Year+"/"+transactionDate.Month+"/"+transactionDate.Day;
I użyj sqlDateString jako część texttext i wyślij do bazy danych. Jest to starsza aplikacja i wbudowany sql, więc nie mam wolności do skonfigurowania procedury przechowywanej i tworzenia i przypisywania parametrów w moim kodzie. Działa to w 90% przypadków. Usługa sieciowa jest wywoływana w zdarzeniu onchange z m_txtDateAdd. Co jakiś czas odpowiedź otrzymywana z serwera to:
System.ArgumentException: Nie można przekonwertować 25/06/2009 na System.DateTime. System.ArgumentException: Nie można przekonwertować 25/06/2009 na System.DateTime.
Nazwa parametru: type ---> System.FormatException: String nie został rozpoznany jako poprawny DateTime.
at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles)
at System.DateTime.Parse(String s, IFormatProvider provider)
at System.Convert.ToDateTime(String value, IFormatProvider provider)
at System.String.System.IConvertible.ToDateTime(IFormatProvider provider)
at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
at System.Web.Services.Protocols.ScalarFormatter.FromString(String value, Type type)
--- End of inner exception stack trace ---
at System.Web.Services.Protocols.ScalarFormatter.FromString(String value, Type type)
at System.Web.Services.Protocols.ValueCollectionParameterReader.Read(NameValueCollection collection)
at System.Web.Services.Protocols.HtmlFormParameterReader.Read(HttpRequest request)
at System.Web.Services.Protocols.HttpServerProtocol.ReadParameters()
at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()
Czy można wyświetlić niestandardowy kod weryfikatora? Serializator spróbuje przekonwertować twój ciąg znaków przy użyciu domyślnego formatowania, które może zrozumieć tylko kilka podstawowych formatów. Walidator powinien zapewnić przesłanie znanego formatu. –
Jest to standardowy walidator niestandardowy asp.net. Nie napisałem własnego – user48408