web-dev-qa-db-ja.com

「asp-for」HTMLタグの形式を指定します(ASP.NET Core)

ASP.NET Coreプロジェクトでは、(読み取り専用の)日付を特定の形式(「dd/mm/yyyyHH:MM」など)で表示する必要があります。

<div class="form-group">
    <label asp-for="Date" class="col-md-2 control-label"></label>
    <div class="col-md-10">
        <input asp-for="Date" readonly class="form-control" />
    </div>
</div>

Dateフィールドがこのようなモデルで宣言されていることを知って、どうすればよいですか?

public DateTime Date { get { return this.Timestamp.DateTime; } }

4
Serge

または、プロパティをDisplayFormatAttributeで装飾することもできます。

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy HH:MM}")]
public DateTime Date { get { return this.Timestamp.DateTime; } }

持っているマークアップを変更する必要はありません。

9
Will Ray

これを試して。

<input asp-for="Date" asp-format="{0:dd/MM/yyyy HH:mm}" readonly class="form-control" />
6
tsu1980

読み取り専用の場合は、次のようにハードコーディングできます-

<input value="@Model.Date.ToString("dd/MM/yyyy HH:mm")" readonly class="form-control" />

またはテキストとして表示

<div class="form-group">
    <label asp-for="Date" class="col-md-2 control-label"></label>
    <div class="col-md-10 form-control-static">
        @Model.Date.ToString("dd/MM/yyyy HH:mm")
    </div>
</div>
4
Win

質問に従ってASP.CoreTagHelpersを使用します。

[DataType(DataType.Date)]
public DateTime Date { get { return this.Timestamp.DateTime; } }

ロケール設定に従って、入力フィールドを適切にフォーマットします。他のタグのタグヘルパーソリューションが見つかりません。Winの回答によるとハードコーディングのようです。

1
RichyRoo