Edge中的C#MVC(在它取代Internet Explorer后)日期错误
当我们从Internet explorer更改为Edge时,我开始收到一个视图错误字段NextContactDate不是日期。我想解决这个问题,阻止它发生。这是一个C#应用程序,最初编写于2012年,在PC上运行,他们用WIN 10取代了WIN 7 PC。 Edit.cshtml中字段的原始视图代码为:Edge中的C#MVC(在它取代Internet Explorer后)日期错误,c#,C#,当我们从Internet explorer更改为Edge时,我开始收到一个视图错误字段NextContactDate不是日期。我想解决这个问题,阻止它发生。这是一个C#应用程序,最初编写于2012年,在PC上运行,他们用WIN 10取代了WIN 7 PC。 Edit.cshtml中字段的原始视图代码为: <tr> <td>@Html.LabelFor(model => model.sitestatus.StatusDate)</td>
<tr>
<td>@Html.LabelFor(model => model.sitestatus.StatusDate)</td>
<td>@Html.TextBoxFor(m => m.sitestatus.StatusDate, new { @Value = Model.sitestatus.StatusDate.ToString("dd/MM/yyyy"), id = "dp", style = "width:90px;" })
@Html.ValidationMessageFor(model => model.sitestatus.StatusDate)</td>
<td>The Date of the Status Change</td>
</tr>
@LabelFor(model=>model.sitestatus.StatusDate)
@Html.TextBoxFor(m=>m.sitestatus.StatusDate,新的{@Value=Model.sitestatus.StatusDate.ToString(“dd/MM/yyyyy”),id=“dp”,style=“width:90px;”)
@Html.ValidationMessageFor(model=>model.sitestatus.StatusDate)
状态更改的日期
我们如何使其工作?这是通过修改Site Status Edit.cshtml代码解决的:
<tr>
<td>@Html.LabelFor(model => model.sitestatus.StatusDate)</td>
<td>@{ Html.EnableClientValidation(false); }
@Html.TextBoxFor(m => m.sitestatus.StatusDate, "{0:dd/MM/yyyy}", new { id="dp", style="width:90px;" })
@Html.ValidationMessageFor(model => model.sitestatus.StatusDate)
@{ Html.EnableClientValidation(true); }</td>
</tr>
@LabelFor(model=>model.sitestatus.StatusDate)
@{Html.EnableClientValidation(false);}
@Html.TextBoxFor(m=>m.sitestatus.StatusDate,“{0:dd/MM/yyyy}”,新的{id=“dp”,style=“width:90px;”)
@Html.ValidationMessageFor(model=>model.sitestatus.StatusDate)
@{Html.EnableClientValidation(true);}
诀窍是在代码中包含Html.EnableClientValidation false,但这对我来说是新的。任何人都知道它的作用以及它可能影响ie的其他内容它是否允许Chrome在与ie和Edge相同的日期工作?禁用验证不是修复方法,它是一个非常严重的错误。最初的代码有缺陷——它没有绑定到日期属性并让客户端格式化它,而是将日期时间值转换为本地化字符串。也许更好的解决方案是使用
input type=“date”
。我完全赞成一个更好的解决方案。非常感谢您的快速回复。我完全支持一个更好的解决方案,但这是我花了很长时间上网后能想到的最好的解决方案。如果你能提供一个更好的,我会尝试并报告回来。在这种情况下,请检查副本。自2012年以来,HTML和Javascript都发生了很多变化,8年前的验证脚本在其他地方可能会失败。您发布的错误来自Javascript,因为无法将字符串值解析为日期。您可能需要升级客户端验证库