防止跨请求更改全球化区域性
本文关键字:全球化 区域性 请求 | 更新日期: 2023-09-27 18:35:40
- WebForms, .NET 4.61
我遇到了日期未从字符串转换的问题。
public dsBookingActual GetBookingActualData(Int64 ozBookingID, string consultant, string screenViewed)
{
DbCommand dbCommand = db.GetStoredProcCommand("usp_GetBookingActualData");
db.AddInParameter(dbCommand, "@OzBookingID", DbType.Int64, ozBookingID);
db.AddInParameter(dbCommand, "@Consultant", DbType.String, consultant);
db.AddInParameter(dbCommand, "@ScreenViewed", DbType.String, screenViewed);
dsBookingActual dsBA = new dsBookingActual();
//LoadDataSet fails when the date is 29/01/2016
db.LoadDataSet(dbCommand, dsBA, new string[] { Constant.BOOKING_ACTUAL, "Passengers" });
return dsBA;
}
我们在 AU 中,因此日期格式为 dd/mm/yyyy,转换日期 29/01/2016 失败,因为它被尝试为 mm/dd/yyyy,例如 29 不是有效的月份。
我追踪到这样一个事实,即浏览器中的语言设置设置为美国与这篇文章类似。
我们在system.web中有一个globailzation标签,如下所示:
<globalization culture="en-AU" requestEncoding="utf-8" responseEncoding="utf-8" uiCulture="en-AU" />
所以我的问题是我如何防止整个请求中的文化发生变化。我猜它涉及不确认或处理"HTTP 请求中的接受语言标头",但我不确定如何实现这一点。
任何指示赞赏。
事实证明,这个问题是由于我们使用ASP样板的结果。框架没有任何问题,是我们使用它导致了问题。