使用 Razor Pages 更新 post 上的标签
Update label on post using Razor Pages
我正在尝试更新 Razor 页面中 http post
上的标签。我有一个名为 Confirmation
的 public 属性,如下所示:
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",而是 属性 的设置值 "Setting saved!"。
- 此外,当 post 方法执行并且我设置字符串 属性 时,它不会更新标签的文本。
我已经尝试将 OnGetAsync()
方法中的 Confirmation
属性 设置为“”,但这仍然会导致标签上显示相同的文本。
你应该试试 <label asp-for="Confirmation">@Model.Confirmation</label>
。
附带说明一下,我怀疑您滥用了 label 元素。它旨在与同名的表单字段配对并呈现 HTML 标签。 Win Forms 和 Web Forms 使用 <label>
控件作为输出文本的通用占位符也无济于事。在 Web 窗体中,它呈现为 <span>
,这可能更合适(尽管您不会获得标签助手帮助)。
label 标签助手的工作方式类似于 Html.LabelFor
html 助手,后者呈现 属性 名称(或显示 属性 的名称属性值)。您的 属性 名称是 "Confirmation",因此您在使用 label 标签助手时会在输出中看到它。
如果您想呈现 属性 的值,您可以使用普通的剃刀语法简单地打印它
<label>@Model.Confirmation</label>
我正在尝试更新 Razor 页面中 http post
上的标签。我有一个名为 Confirmation
的 public 属性,如下所示:
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",而是 属性 的设置值 "Setting saved!"。
- 此外,当 post 方法执行并且我设置字符串 属性 时,它不会更新标签的文本。
我已经尝试将 OnGetAsync()
方法中的 Confirmation
属性 设置为“”,但这仍然会导致标签上显示相同的文本。
你应该试试 <label asp-for="Confirmation">@Model.Confirmation</label>
。
附带说明一下,我怀疑您滥用了 label 元素。它旨在与同名的表单字段配对并呈现 HTML 标签。 Win Forms 和 Web Forms 使用 <label>
控件作为输出文本的通用占位符也无济于事。在 Web 窗体中,它呈现为 <span>
,这可能更合适(尽管您不会获得标签助手帮助)。
label 标签助手的工作方式类似于 Html.LabelFor
html 助手,后者呈现 属性 名称(或显示 属性 的名称属性值)。您的 属性 名称是 "Confirmation",因此您在使用 label 标签助手时会在输出中看到它。
如果您想呈现 属性 的值,您可以使用普通的剃刀语法简单地打印它
<label>@Model.Confirmation</label>