0

我有以下 HTML:

<label asp-for="CurrentLocation.Description" class="text-info"></label>

在绑定模型中:

public class NavigationModel : PageModel
{
    public void OnGet()
    {
        CurrentLocation = new Location()
        {
            Description = "test"
        };
    }

    [BindProperty]
    public Location CurrentLocation { get; set; }
}

因此,据我对 RazorPages 的理解,该站点应显示“测试”;但相反,它显示“描述”。我看过几个例子,这些例子都很好,但我不明白为什么我的版本可能会有所不同。谁能指出我正确的方向?

4

2 回答 2

0

根据文档,您观察到的是正确的值:Description.

asp-for 属性由LabelTagHelper. 有关详细信息,请参阅创作标记帮助程序。

用 Razor 的说法,标签从未显示属性的值,而是显示属性的名称。

要显示值,请使用类似

<label asp-for="CurrentLocation.Description" for="theValue" class="text-info">
</label>
<span id="theValue"> @model.CurrentLocation.Description</span>
于 2018-01-22T23:08:47.860 回答
0

标签标签只会显示您使用的属性的名称。

如果要显示带有 Description 属性内容的输入,则必须键入以下代码:

<input asp-for="CurrentLocation.Description" type="hidden" />

如果要将属性的值显示为标签,则必须键入以下内容:

@CurrentLocation.Description
于 2018-01-23T07:07:18.407 回答