在Angular,mvc项目中,我使用JSON.stringify将字符串格式的日期传递给服务器端。在我的服务器端,我得到了#34; \" 05/10/2018 \""。我尝试了各种方法将其转换为DateTime但是没有成功。我想我需要反序列化字符串,转换为日期将其传递给sql,但无法弄清楚如何?我浏览了找到答案,但没有成功。如果我需要安装nuget包,请告诉我。 这是客户端服务类:
private GetLOBUrl = 'http://localhost:63213/Vto/GetLOB';
getLOBs(action: string = null, data?: VTO): Observable<VTO[]> {
return this.http.post<VTO[]>(this.GetLOBUrl + `/?ReportDate=${JSON.stringify(action)}`,null)
.catch(this.errorHandler);
}
errorHandler(error: HttpErrorResponse) {
return Observable.throw(error.message || "Server Error");
}
在服务器端,我在将reportDate转换为字符串/日期类型时遇到问题。
public static IEnumerable<DTO.DropDownItem> SelectLOB(string reportDate)
{
//reportDate comes in "\"05/10/2018\"" format. Here I need to convert reportDate to string
DateTime rDate = DateTime.Parse(reportDate);
string query = @"SELECT Id, Description
FROM TABLE
WHERE StartDate = @reportDate AND StopDate is NULL";
IEnumerable<DTO.DropDownItem> items = new List<DTO.DropDownItem>(0);
var p = new DynamicParameters();
p.Add("@reportDate", reportDate);
using (SqlConnection con = Connection.GetConnection())
{
items = con.Query<DTO.DropDownItem>(query, param: p, commandType: CommandType.Text);
}
return items;
}
答案 0 :(得分:2)
我想你想做
var dt= (DateTime)JToken.Parse("\"05/10/2018\"");
答案 1 :(得分:0)
你应该如上所述使用JToken库来解析你的json,但是我可以在使用下面的代码解析为某个日期之前删除引号,如果你想做的话。
string val = "\"05/10/2018\"".Replace("\"","");
DateTime rDate = DateTime.Parse(val);