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
?
答案 0 :(得分:1)
标记帮助程序根据id
属性中指定的属性名称添加name
和asp-for
。鉴于此标记:
<input asp-for="Name" />
上面的Tag Helper生成以下HTML:
<input type="text" id="Name" name="Name" />
正如您所看到的,通过使用标记帮助程序,您不再需要编写这些属性。它们将自动为您生成。
在编码时,它还可以为您提供正确的智能感知。所以它实际上是用于创建表单元素的语法糖。
更多信息(+)