C# &引用;字符串未被识别为有效的日期时间;对于字符串格式dd/MM/yyyyTHH:MM
我使用一个声明为C# &引用;字符串未被识别为有效的日期时间;对于字符串格式dd/MM/yyyyTHH:MM,c#,asp.net-mvc,date,datetime,C#,Asp.net Mvc,Date,Datetime,我使用一个声明为@Html.TextBoxFor(model=>model.StartDate,new{type=“datetime local”、@class=“form control”、@style=“height:34px;width:230px”})的Html.TextBoxFor(model=>model.StartDate,new{type=“datetime local”、@style=“height:34px;width:230px”)接受输入。这两个函数都通过AJAX将其值传
@Html.TextBoxFor(model=>model.StartDate,new{type=“datetime local”、@class=“form control”、@style=“height:34px;width:230px”})的Html.TextBoxFor(model=>model.StartDate,new{type=“datetime local”、@style=“height:34px;width:230px”)接受输入。
这两个函数都通过AJAX将其值传递给C#控制器函数,该函数执行以下操作
DateTime ResourceStart=DateTime.ParseExact(resource\u start,“dd/MM/yyyyth:MM”,CultureInfo.InvariantCulture)代码>
DateTime ResourceDue=DateTime.ParseExact(resource_due,“dd/MM/yyyyth:MM”,CultureInfo.InvariantCulture)代码>
resource\u start
和resource\u due
的值分别为“2016-12-02T09:30”和“2016-12-12T12:50”
下面是程序崩溃时的异常详细信息
System.FormatException was unhandled by user code
HResult=-2146233033
Message=String was not recognized as a valid DateTime.
Source=mscorlib
StackTrace:
at System.DateTimeParse.ParseExact(String s, String format, DateTimeFormatInfo dtfi, DateTimeStyles style)
at System.DateTime.ParseExact(String s, String format, IFormatProvider provider)
at ITPortal.Areas.ITWorkstream.Controllers.WorkstreamController.CreateResource(Int32 task_id, String resource_start, String resource_due) in c:\Work\ITPortal\ITPortal-DEV\ITPortal\Areas\ITWorkstream\Controllers\WorkstreamController.cs:line 247
at lambda_method(Closure , ControllerBase , Object[] )
at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.ActionInvocation.InvokeSynchronousActionMethod()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState)
at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End()
at System.Web.Mvc.Async.AsyncResultWrapper.End[TResult](IAsyncResult asyncResult, Object tag)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()
InnerException:
用户代码未处理System.FormatException
HResult=-21462033
Message=字符串未被识别为有效的日期时间。
Source=mscorlib
堆栈跟踪:
位于System.DateTimeParse.ParseExact(字符串s、字符串格式、DateTimeFormatInfo dtfi、DateTimeStyles样式)
在System.DateTime.ParseExact(字符串s、字符串格式、IFormatProvider)
在c:\Work\ITPortal\ITPortal-DEV\ITPortal\Areas\ITWorkstream\Controllers.WorkstreamController.CreateResource(Int32任务id、字符串资源\u开始、字符串资源\u到期)中的ITPortal.Areas.ITWorkstream.Controllers.WorkstreamController:cs:247行
在lambda_方法中(闭包、控制器基、对象[])
位于System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller,Object[]参数)
位于System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext ControllerContext,IDictionary`2参数)
位于System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext ControllerContext,ActionDescriptor ActionDescriptor,IDictionary`2参数)
在System.Web.Mvc.Async.AsyncControllerActionInvoker.ActionInvoke.InvokeSynchronousActionMethod()中
在System.Web.Mvc.Async.AsyncControllerActionInvoker.b_u39(IAsyncResult asyncResult,ActionInvokeInnerInvokeState)
位于System.Web.Mvc.Async.AsyncResultRapper.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult)
位于System.Web.Mvc.Async.AsyncResultRapper.WrappedAsyncResultBase`1.End()
在System.Web.Mvc.Async.asyncResultRapper.End[TResult](IAsyncResult asyncResult,对象标记)
位于System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
在System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.b__3d()中
在System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.c__DisplayClass46.b__3f()中
内部异常:
我想我的问题在于我在ParseExact函数中为字符串声明的格式,有人能告诉我使用instad的格式吗?您的格式字符串“dd/MM/yyyyyth:MM”
与您的输入格式不匹配2016-12-02T09:30
:格式是带斜线的第一天,而输入是带有破折号的第一年
您应该将输入更改为02/12/2016T09:30
,或者更改格式:
DateTime.ParseExact(resource_due, "yyyy-MM-ddTHH:mm", CultureInfo.InvariantCulture)
您尝试过在值中使用“/”而不是“-”吗?/
与-
不一样(但是为什么不将参数日期时间
改为字符串
,以便正确绑定)?