ASP.NET 中的标记助手

Tag helpers in ASP.NET

I am learning ASP.NET Core with this tutorial.

我现在正在添加搜索功能,这需要在 Razor 页面和底层 C# 之间传递数据 class。为此,我被指示这样做:

<select asp-for="MovieGenre" asp-items="Model.Genres">
   <option value="">All</option>
</select>

当然,我已经正确初始化了字段Genres,所以列表没问题。

据我了解,在属性 asp-for 中我们指定了目标变量。 它很好地向 URL 中的查询字符串添加变量,但它非常麻烦,因为我需要基础 class 中的字段,该名称必须完全匹配。所以,我必须有 MovieGenre 字段。但是,如果我只想将它添加到查询字符串中,那又有什么意义呢?它背后的想法是什么?

我想到了更简单的方法:

<select name="movieGenre" asp-items="Model.Genres">
    <option value="">All</option>
</select>

仅将 movieGenre=... 添加到 URL,无需在我的 class.

中声明额外字段

那么,如果我们有更简单的 name 属性,为什么还要使用 asp-for

标签助手根据 asp-for 属性中指定的 属性 名称添加 idname。鉴于此标记:

<input asp-for="Name" />

上面的 Tag Helper 生成以下 HTML:

<input type="text" id="Name" name="Name" />

如您所见,通过使用标签助手,您不再需要编写这些属性。它们将自动为您生成。

它还会在您编码时为您提供适当的智能感知。所以它实际上是一个用于创建表单元素的语法糖。

更多信息(+