在ASP.NET中标记助手

时间:2018-01-15 09:56:39

标签: c# asp.net razor asp.net-core-tag-helpers

I am learning ASP.NET Core with this tutorial

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

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

当然,我有正确的Genres字段,所以列表没问题。

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

我提出了更简单的方法:

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

只会将movieGenre=...添加到网址,而无需在我的课程中声明额外字段。

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

1 个答案:

答案 0 :(得分:1)

标记帮助程序根据id属性中指定的属性名称添加nameasp-for。鉴于此标记:

<input asp-for="Name" />

上面的Tag Helper生成以下HTML:

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

正如您所看到的,通过使用标记帮助程序,您不再需要编写这些属性。它们将自动为您生成。

在编码时,它还可以为您提供正确的智能感知。所以它实际上是用于创建表单元素的语法糖。

更多信息(+