我正在使用ASP.NET EF,并试图将我的模型中的DateTime输入到我的控制器中。我的模型格式为&#; dd / mm / yyyy'当我把它带进控制器时,我想给它增加10个小时并将它发送到另一个控制器来使用这个日期。此代码在本地工作,但我在Azure上托管,因此需要将其从NZ时区转换为UTC时区。
我收到错误:
ArgumentOutOfRangeException:添加或减去的值会导致无法表示的DateTime。
我相信这是因为价值将自己设置回01/01/0001,但我可以在本地运行,而且效果很好。
查看代码:
@using (Html.BeginForm())
{
@Html.HiddenFor(x => x.SiteID)
@Html.TextBoxFor(x => x.Date, DateTime.Now.ToString("dd/MM/yyyy"), new {
@class = "form-control" })
<button type="submit" name="type" value="invoice" class="btn btn-primary"
onclick="document.body.style.cursor='wait'">Generate Invoices</button>
}
控制器代码(viewModel传入日期):
public ActionResult Run(RunViewModel viewModel, string type)
{
var logger = new MemoryLogger();
if (type == "invoice")
{
var date = viewModel.Date.AddHours(10);
var xeroCommandParameters = new XeroCommandParameters
{
Logger = logger,
LocalDateTime = TimeZoneInfo.ConvertTimeToUtc(date, NewZealand),
};