我需要自定義剃刀日期輸入格式。我正在使用 aspnetcore 6.0 mvc 應用程式
我想要荷蘭語輸入格式,日-月-年,但我只成功獲得了美式輸入格式月-日-年。
這是表格:
@model myViewModel
<form asp-action="Edit" method="post" role="form">
<div >
<label asp-for="myDateField" ></label>
<div >
<input type="date" asp-for="myDateField" />
</div>
</div>
<div >
<div >
<input type="submit" value="save" />
</div>
</div>
</form>
這是我的視圖模型:
public class myViewModel
{
[DisplayName("why won't the format change :'(")]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public DateTime? myDateField{ get; set; }
}
我一直在玩格式設定和屬性。就像添加 DataType 屬性,更改格式一樣,但我沒有取得任何成功。使用當前顯示的這些設定甚至隱藏當前的 viewmodel mydate 值。
我沒想到這會如此困難。我希望找到一個可以添加到 Program.cs 檔案中的全域解決方案,但我無法得到任何作業。
有誰知道這里發生了什么?
編輯:我已經將文化設定為荷蘭語,這似乎并沒有改變任何東西。我使用了以下內容:
var defaultCulture = new CultureInfo("nl-NL");
defaultCulture.NumberFormat.CurrencySymbol = "€";
var localizationOptions = new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture(defaultCulture),
SupportedCultures = new List<CultureInfo> { defaultCulture },
SupportedUICultures = new List<CultureInfo> { defaultCulture }
};
app.UseRequestLocalization(localizationOptions);
編輯:答案更新
正如瑞凱峰所建議的,我的系統語言設定最終負責日期格式。我不需要 DisplayFormat 屬性。
uj5u.com熱心網友回復:
當您收到回應時,剃刀視圖中的所有 C# 代碼都將被編譯為 html/js 代碼
我在這種情況下找到了解釋:在 html 5 中輸入日期需要 RFC3339 格式的日期
然后將根據用戶瀏覽器和他們的日歷設定向用戶顯示日期輸出。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/517363.html