模型属性更改后是否可以更新视图?

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

鉴于我修改了很多,我注意到日期选择器的日期格式不适合我想要的。 enter image description here 我不需要几个小时。

经过研究,我发现建议向模型的 DateTime 属性添加一个属性:

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

然后我假设这个属性添加应该应用于视图。但我不知道该怎么做。 我们可以重新加载视图以使其考虑更改,还是应该删除它并构建一个新视图?

asp.net asp.net-mvc model-view-controller view attributes
1个回答
0
投票

请允许我在 .Net 8 MVC APP 中分享我的测试,我认为这可能有助于显示结果。下面是我的代码,就像您所看到的那样,我在模型上有不同的日期格式设置,并且我在其中一个输入上有

type="date"
配置。

<div>
    <label asp-for="MyDate" class="control-label"></label>
    <input asp-for="MyDate" type="date" class="form-control" />
    <input asp-for="MyDate2" class="form-control" />
</div>

<div>
    @Html.TextBoxFor(m => m.MyDate, new { @type = "date" })
    @Html.TextBoxFor(m => m.MyDate2, new { })
</div>

public class MyModel
{
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd-MMM-yyyy}")]
    public DateTime MyDate { get; set; }
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd MMM yyyy}")]
    public DateTime MyDate2 { get; set; }
}

enter image description here

就像您在屏幕截图中看到的那样,

[DisplayFormat]
使DOM中的值具有不同的行为,但它不影响UI中的外观,
type="date"
使日期输入仅显示日期而不显示时间。同时,[DisplayFormat] 属性需要重新启动应用程序才能生效。

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