Razor DisplayFor of DateTime = La cadena de entrada no estaba en un formato correcto

Recientemente actualicé varios de los ensamblajes referenciados para mi aplicación MVC 4 y también actualicé a MVC 5.1. No estoy seguro si esto tiene algo que ver con eso.

Modelo

[Display(Name = "Start")] [DisplayFormat(DataFormatString = "{0t}")] public System.DateTime StartDateTime { get; set; } 

Ahora estoy recibiendo un error extraño en un simple ayudante html de afeitar

 @Html.DisplayFor(model => model.StartDateTime) 

Da el error: Input string was not in a correct format .

Si observa el valor de ese campo en el depurador, es de tipo System.DateTime y muestra: 2/28/2014 10:17 AM

Al cambiar a @Html.EditorFor representa correctamente la hora de los datos.

Mi carpeta DisplayTemplates está vacía.

Astackr:

 [FormatException: Input string was not in a correct format.] System.Text.StringBuilder.AppendFormat(IFormatProvider provider, String format, Object[] args) +14321177 System.String.Format(IFormatProvider provider, String format, Object[] args) +136 System.Web.Mvc.Html.TemplateHelpers.TemplateHelper(HtmlHelper html, ModelMetadata metadata, String htmlFieldName, String templateName, DataBoundControlMode mode, Object additionalViewData, ExecuteTemplateDelegate executeTemplate) +775 System.Web.Mvc.Html.TemplateHelpers.TemplateHelper(HtmlHelper html, ModelMetadata metadata, String htmlFieldName, String templateName, DataBoundControlMode mode, Object additionalViewData) +241 System.Web.Mvc.Html.TemplateHelpers.TemplateFor(HtmlHelper`1 html, Expression`1 expression, String templateName, String htmlFieldName, DataBoundControlMode mode, Object additionalViewData, TemplateHelperDelegate templateHelper) +332 System.Web.Mvc.Html.TemplateHelpers.TemplateFor(HtmlHelper`1 html, Expression`1 expression, String templateName, String htmlFieldName, DataBoundControlMode mode, Object additionalViewData) +333 System.Web.Mvc.Html.DisplayExtensions.DisplayFor(HtmlHelper`1 html, Expression`1 expression) +151 ASP._Page_Areas_Mobile_Views_LogTimeForPart_CurrentTask_cshtml.Execute() in c:\Users\Chad\documents\Incite Systems\clients\hh metals\20 - development\otis\app\otis.web\Areas\Mobile\Views\LogTimeForPart\CurrentTask.cshtml:41 System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +392 System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +165 System.Web.WebPages.StartPage.RunPage() +77 System.Web.WebPages.StartPage.ExecutePageHierarchy() +123 System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +212 System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance) +1161 System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer) +639 System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) +828 System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) +65 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) +178 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) +1131 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) +181 System.Web.Mvc.Async.c__DisplayClass2b.b__1c() +549 System.Web.Mvc.Async.c__DisplayClass21.b__1e(IAsyncResult asyncResult) +330 System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +71 System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +196 System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +73 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +58 System.Web.Mvc.Controller.b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +90 System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +188 System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +196 System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +73 System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +50 System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +68 System.Web.Mvc.Controller.b__15(IAsyncResult asyncResult, Controller controller) +60 System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +85 System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +196 System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +73 System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +50 System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +58 System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +60 System.Web.Mvc.MvcHandler.b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +93 System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +188 System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +196 System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +73 System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +50 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +58 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +59 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +606 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +288 

Intente especificar el atributo DisplayFormat, por ejemplo (en su propiedad de modelo):

 [DisplayFormat(DataFormatString = "{0:C}")] public DateTime StartDateTime { get; set; } 

Edición basada en la pregunta editada:

Su syntax en su formato de visualización es incorrecta: falta dos puntos. Haga esto (note los dos puntos entre 0 y t ):

 [Display(Name = "Start")] [DisplayFormat(DataFormatString = "{0:t}")] public System.DateTime StartDateTime { get; set; } 

Hizo algo estúpido. Algunos de mis [Display(Name = "Start")] tenían dos puntos: después del nombre para representarlo de esa manera en un formulario. Usé un reemplazo en Visual Studio para reemplazar los dos puntos con “” que también eliminó los dos puntos entre las anotaciones de la cadena de formato {0: t}. [DisplayFormat(DataFormatString = "{0t}")] . ¡Siento perder el tiempo de la gente por mi estupidez! Gracias a todos por las respuestas.