Label 标记 asp-for 未显示

Label tag asp-for is not displaying

我有这个 ViewModel class

public class ThirdPartyTransfer
{
    public int Id { get; set; }
    [Display(Name = "Transfer Amount")]
    public decimal TransferAmount { get; set; }

}

在我的 C# Razor 页面中,ThirdPartyTransfer.cshtml

   <div class="form-group">
    <label asp-for="ThirdPartyTransfer.TransferAmount" />
    <input asp-for="ThirdPartyTransfer.TransferAmount" class="form-control" />
    <span asp-validation-for="ThirdPartyTransfer.TransferAmount" class="text-danger"></span>
</div>

下面是正在渲染的内容

    <div class="form-group">
    <label for="ThirdPartyTransfer_TransferAmount" />
    <input class="form-control" type="text" data-val="true" data-val-number="The field Transfer Amount must be a number." data-val-required="The Transfer Amount field is required." id="ThirdPartyTransfer_TransferAmount" name="ThirdPartyTransfer.TransferAmount" value="" />
    <span class="text-danger field-validation-valid" data-valmsg-for="ThirdPartyTransfer.TransferAmount" data-valmsg-replace="true"></span>
</div>

我想知道为什么我能看到文本框但看不到标签。

好吧,史蒂夫,你的问题与你的 HTML 有关。标签不应自动关闭。

将其更改为 <label asp-for=""></label> 就可以了!

来自微软文档;

自闭标​​签助手

许多标签助手不能用作自关闭标签。一些 Tag Helpers 被设计成自关闭标签。使用未设计为自动关闭的标记帮助程序会抑制呈现的输出。自闭 Tag Helper 会在呈现的输出中产生一个自闭标签。有关详细信息,请参阅 this note in Authoring Tag Helpers