Это действительно не имеет никакого смысла для меня вообще.
У меня есть модель вида с этим полем:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
[DataType(DataType.Date)]
public DateTime Scheduled { get; set; }
Затем я отображаю это поле в представлении (это представление редактирования) следующим образом:
@Html.EditorFor(m=>m.Scheduled)
В первый раз после цикла очистки / перестройки он работает нормально, в поле отображается только дата (в последнее время я много потрудился, чтобы выяснить, как можно не отображать дату и время в коробка, и это кажется лучшим способом).
Однако, как только я обновляю страницу, я получаю следующее:
Значение не может быть нулевым.
Имя параметра: поток
Описание: во время выполнения текущего веб-запроса произошло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.
Сведения об исключении: System.ArgumentNullException: значение не может быть нулевым.
Имя параметра: поток
И эта ошибка сохраняется до следующего цикла очистки / восстановления. Трассировка стека, кажется, указывает на то, что механизм представления пытается загрузить шаблон из каталога / Shared / EditorTemplates. У меня нет шаблона для этого, поскольку в документации, по-видимому, указано, что по умолчанию оно должно быть текстовым полем, чего я и хочу.
Я не использую прямой TextBoxFor, поскольку он не выполняет форматирование, и EditorFor, кажется, делает это. И когда я пытаюсь создать шаблон для удовлетворения этого исключения, я снова пытаюсь выяснить, как форматировать дату в представлении.
Итак, я полагаю, что для ответа сработают две вещи: почему эта ошибка возникает только после первого обновления или как отформатировать дату в представлении Razor.
По запросу, полный стек:
[ArgumentNullException: значение не может быть нулевым.
Имя параметра: поток]
System.IO.StreamReader..ctor (Потоковый поток, Кодировка кодирования, Логическое обнаружениеEncodingFromByteOrderMarks, Int32 bufferSize) +9496369
System.Web.UI.TemplateParser.ParseFile (String PhysicalPath, VirtualPath VirtualPath) +232
System.Web.UI.TemplateParser.ParseInternal () +86
System.Web.UI.TemplateParser.Parse () +160
System.Web.Compilation.BaseTemplateBuildProvider.get_CodeCompilerType () +110
System.Web.Compilation.BuildProvider.GetCompilerTypeFromBuildProvider (BuildProvider buildProvider) +65
System.Web.Compilation.BuildProvidersCompiler.ProcessBuildProviders () +218
System.Web.Compilation.BuildProvidersCompiler.PerformBuild () +40
System.Web.Compilation.BuildManager.CompileWebFile (VirtualPath virtualPath) +8945798
System.
System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert (контекст HttpContext, VirtualPath virtualPath, логический noBuild, логический allowCrossApp, логический allowBuildInPrecompile, логический throwIfNotFound, логический гарантировать)
System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory (VirtualPath virtualPath, контекст HttpContext, логическое allowCrossApp, логическое throwIfNotFound) +125
System.Web.Compilation.BuildManager.GetCompiledType (VirtualPath virtualPath) +10
System.Web.Compilation.BuildManager.GetCompiledType (String virtualPath) +28
System.Web.Mvc.BuildManagerWrapper.System.Web.Mvc.IBuildManager.GetCompiledType (String virtualPath) +7
System.Web.Mvc.BuildManagerCompiledView.Render (ViewContext viewContext, TextWriter Writer) +58
System.Web.Mvc.Html.TemplateHelpers.ExecuteTemplate (HtmlHelper html, ViewDataDictionary viewData, String templateName, DataBoundControlMode, GetViewNamesDelegate getViewNames, GetDefaultActionsDelegate getDefaultActions) +584System.Web.Mvc.Html.TemplateHelpers.TemplateHelper (HtmlHelper html, метаданные ModelMetadata, String htmlFieldName, String templateName, DataBoundControlMode mode, объект AdditionalViewData, ExecuteTemplateDelegate executeTemplate) +1027
System.Web.Mvc.Html.TemplateHelpers.TemplateHelper (HtmlHelper html, метаданные ModelMetadata, String htmlFieldName, String templateName, режим DataBoundControlMode, объект AdditionalViewData объекта) +66
System.Web.Mvc.Html.TemplateHelpers.TemplateFor (HtmlHelper 1 html, Expression
1 выражение, строковое templateName, строковое htmlFieldName, режим DataBoundControlMode, объект AdditionalViewData, TemplateHelperDelegate templateHelper) +118
System.Web.Mvc.Html.TemplateHelpers.TemplateFor (HtmlHelper 1 html, Expression
1 выражение, строковое templateName, строковое htmlFieldName, режим DataBoundControlMode, объект AdditionalViewData объекта) +100
System.Web.Mvc.Html.EditorExtensions.EditorFor (выражение HtmlHelper 1 html, Expression
1) +57
ASP._Page_Views_Visit_visit_Edit_cshtml.Execute () в d: \ Code ... \ Views \ Visit \ Visit \ Edit.cshtml: 34
System.Web.WebPages.WebPageBase.ExecutePageHierarchy () +207
System.Web.Mvc.WebViewPage.ExecutePageHierarchy () +81
System.Web.WebPages.WebPageBase.ExecutePageHierarchy (WebPageContext pageContext, средство записи TextWriter, WebPageRenderingBase startPage) +76
System.Web.Mvc.RazorView.RenderView (ViewContext viewContext, средство записи TextWriter, экземпляр объекта) +220
System.Web.Mvc.BuildManagerCompiledView.Render (ViewContext viewContext, TextWriter Writer) +115
System.Web.Mvc.ViewResultBase.ExecuteResult (контекст ControllerContext) +303
System.Web.Mvc.ControllerActionInvoker.InvokeActionResult (ControllerContext controllerContext, ActionResult actionResult) +13
System.Web.Mvc. <> C_ DisplayClass1c.b _19 () +23
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter (фильтр IResultFilter, предварительный контекст ResultExecutingContext, фильтры Func 1 continuation) +260
System.Web.Mvc.<>c__DisplayClass1e.<InvokeActionResultWithFilters>b__1b() +19
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList
1, actionResult actionResult) +177
System.Web.Mvc.ControllerActionInvoker.InvokeAction (ControllerContext controllerContext, String actionName) +343
System.Web.Mvc.Controller.ExecuteCore () +116
System.Web.Mvc.ControllerBase.Execute (RequestContext requestContext) +97
System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute (RequestContext requestContext) +10
System.Web.Mvc. <> C_ DisplayClassb.b _5 () +37
System.Web.Mvc.Async. <> C_ DisplayClass1.b _0 () +21
System.Web.Mvc.Async. <> C_ DisplayClass8 1.<BeginSynchronous>b__7(IAsyncResult _) +12
System.Web.Mvc.Async.WrappedAsyncResult
1.End () +62
System.Web.Mvc. <> C _DisplayClasse.b_ d () +50
System.Web.Mvc.SecurityUtil.b _0 (Действие f) +7
System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust (Действие действия) +22
System.Web.Mvc.MvcHandler.EndProcessRequest (IAsyncResult asyncResult) +60
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest (результат IAsyncResult) +9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute () +8841105
System.Web.HttpApplication.ExecuteStep (шаг IExecutionStep, логическое и завершено синхронно) + 184