从视图传递的数据在 post 返回后不会保留
data passed from view does not remain after post back
我无法为此找到解决方案,因为我认为这是一个错误,或者我可能没有看到我应该看到的东西。
我将模型从受控传递到视图作为强类型数据。然而,只有一个参数被窃听,它在 post-back. 后清除它的数据
当我点击搜索..
你可以在这里看到,Closed Time 的日期还在,但是 Cut Off time 的文本已经消失了。最后看到的日期是@Model.CutOffTimeFrom - @Model.CutOffTimeTo
的值,只是为了看数据是否被清除或删除,其实并没有,只是EditorFor上的显示被去掉了。
我也试过这个 ,使用 <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>
所有其他字段都可以正常工作。只清除Cut Off时间,虽然满足搜索条件,但模型上仍然传递了值,只是不显示在视图上。
有人遇到过这个问题吗?
我们能看到 Controller 处理这个吗,因为它可能不是模型绑定
我彻底检查了每个元素的差异,属性,参数,看到了一个差异,日期格式。在检查每个 EditorFor
的检查元素时看到了错误,发现它们是不同的日期,2019/02/08
和 02/08/2019
,后者是错误的。
更改自:
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
收件人:
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
可能 [DataType(DataType.Date)]
无法呈现 02/08/2019 这就是它不重新填充表单的原因。
我无法为此找到解决方案,因为我认为这是一个错误,或者我可能没有看到我应该看到的东西。
我将模型从受控传递到视图作为强类型数据。然而,只有一个参数被窃听,它在 post-back.@Model.CutOffTimeFrom - @Model.CutOffTimeTo
的值,只是为了看数据是否被清除或删除,其实并没有,只是EditorFor上的显示被去掉了。
我也试过这个 <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>
所有其他字段都可以正常工作。只清除Cut Off时间,虽然满足搜索条件,但模型上仍然传递了值,只是不显示在视图上。
有人遇到过这个问题吗?
我们能看到 Controller 处理这个吗,因为它可能不是模型绑定
我彻底检查了每个元素的差异,属性,参数,看到了一个差异,日期格式。在检查每个 EditorFor
的检查元素时看到了错误,发现它们是不同的日期,2019/02/08
和 02/08/2019
,后者是错误的。
更改自:
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
收件人:
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
可能 [DataType(DataType.Date)]
无法呈现 02/08/2019 这就是它不重新填充表单的原因。