防止全球化文化在请求中发生变化

时间:2016-02-22 01:57:26

标签: c# asp.net date webforms

  • 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则不是有效月份。

我将其跟踪到浏览器中的语言设置设置为US {similair this post这一事实。

我们在 system.web 中有一个全球化标记:

<globalization culture="en-AU" requestEncoding="utf-8" responseEncoding="utf-8" uiCulture="en-AU" />

所以我的问题是如何阻止文化在整个请求中发生变化。我猜它涉及不承认或处理HTTP请求中的&#34; Accept-Language标头&#34;但我不确定如何实现这一点。

任何指示赞赏。

1 个答案:

答案 0 :(得分:0)

事实证明这个问题是我们使用ASP Boilerplate的结果。框架没有错,正是我们使用它导致了这个问题。