我正在尝试更新Razor页面中http post
上的标签。我有一个名为Confirmation
的公共财产,如下所示:
public string Confirmation { get; set; }
然后我有post
方法:
public async Task<IActionResult> OnPostAsync()
{
//some conditional logic here
Confirmation = "Settings saved!";
return Page();
}
我认为我有
<label asp-for="Confirmation"></label>
但是,它呈现为:
<label for="Confirmation">Confirmation</label>
我尝试将Confirmation
方法中的OnGetAsync()
属性设置为“”,但这仍会导致标签上显示相同的文本。
答案 0 :(得分:1)
您应该尝试<label asp-for="Confirmation">@Model.Confirmation</label>
。
在旁注中,我怀疑您在滥用label元素。它旨在与同名的表单字段配对,并呈现HTML标签。 Win Forms和Web Forms使用<label>
控件作为输出文本的通用占位符并没有帮助。在Web窗体中,它呈现为<span>
,这可能更适合(尽管您不会获得标签帮助程序帮助)。
答案 1 :(得分:1)
标签标记帮助程序的工作方式类似于Html.LabelFor
html帮助程序,它呈现属性名称(或属性的显示名称属性值)。您的属性名称为“确认”,因此在使用标签标记帮助器时会在输出中看到它。
如果要呈现该属性的值,则可以使用常规剃刀语法简单地打印它
<label>@Model.Confirmation</label>