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
属性中指定的 属性 名称添加 id
和 name
。鉴于此标记:
<input asp-for="Name" />
上面的 Tag Helper 生成以下 HTML:
<input type="text" id="Name" name="Name" />
如您所见,通过使用标签助手,您不再需要编写这些属性。它们将自动为您生成。
它还会在您编码时为您提供适当的智能感知。所以它实际上是一个用于创建表单元素的语法糖。
更多信息(+)
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
属性中指定的 属性 名称添加 id
和 name
。鉴于此标记:
<input asp-for="Name" />
上面的 Tag Helper 生成以下 HTML:
<input type="text" id="Name" name="Name" />
如您所见,通过使用标签助手,您不再需要编写这些属性。它们将自动为您生成。
它还会在您编码时为您提供适当的智能感知。所以它实际上是一个用于创建表单元素的语法糖。
更多信息(+)