从视图中传递的数据不保留后回来后

问题描述 投票:0回答:2

我无法找到一个解决方案,因为我认为这是一个错误,也许我没有看到的东西我应该有。

我传递的模型从控制以查看强类型数据。但是,只有一个参数被窃听,它-back.enter image description here后之后清除它的数据。当我点击搜索.. enter image description here您可以在这里看到,从封闭时间日期仍然存在,但截止时间文本消失。你在最后看到的日期是@Model.CutOffTimeFrom - @Model.CutOffTimeTo的价值只是为了看看,如果数据被清除或删除,但它不是,它只是在EditorFor去除显示。

我也试过这个one,使用<input>标签,但它仍然是相同的输出。

下面是我的模型:

[AssertThat("CutOffTimeFrom <= CutOffTimeTo", ErrorMessage = "Date To should be greater than Date From")]
    [RequiredIf("CutOffTimeFrom != null", ErrorMessage = "Date From is required")]
    [DataType(DataType.Date)]
    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
    public DateTime? CutOffTimeFrom { get; set; }

    [RequiredIf("CutOffTimeTo != null", ErrorMessage = "Cut Off Time From is required")]
    [DataType(DataType.Date)]
    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
    public DateTime? CutOffTimeTo { get; set; }

这里是视图:

<div>
     @*<input type="date" name="CutOffTimeFrom" value="@Model.CutOffTimeFrom" class="form-control input-sm" />-<input type="date" name="CutOffTimeTo" value="@Model.CutOffTimeTo" class="form-control input-sm" />*@
     @Html.EditorFor(m => m.CutOffTimeFrom, new { htmlAttributes = new { @class = "form-control input-sm" } }) - @Html.EditorFor(m => m.CutOffTimeTo, new { htmlAttributes = new { @class = "form-control input-sm" } })
     @Html.ValidationMessageFor(model => model.CutOffTimeFrom, "", new { @class = "text-danger" })
     @Html.ValidationMessageFor(model => model.CutOffTimeTo, "", new { @class = "text-danger" })
</div>

所有其他领域的工作就好了。只有截止时间被清除,但它满足搜索标准,价值仍传递模型,但它只是没有在视图中显示。

任何人都遇到过这个问题?

html razor model-view-controller model postback
2个回答
0
投票

我们可以看到控制器的处理方法,因为这可能会发生,它不是模型绑定


0
投票

我彻底检查每一个元素,属性,参数的差异,看到一个区别,日期格式。在检查检查每个EditorFor的构件锯的错误,看到他们不同的日期,2019/02/0802/08/2019,后者是错误的。

改变它:

[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]

至:

[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]

也许[DataType(DataType.Date)]无法呈现2019年2月8日,这就是为什么它不重新填充表单。

© www.soinside.com 2019 - 2024. All rights reserved.