需要对不同类型的 Razor HTML-input 语法进行一些说明
Need some clarification about different types of Razor HTML-input syntax
我正在 .NET Core 3.1 中开发一个项目,遇到了 HTML-输入类型的不同语法类型。
查看编译后的 html 源代码时,它们看起来完全相同。
有什么区别?更喜欢哪一个?
//Alternative 1
<div class="col-md-6 mb-3">
@Html.LabelFor(x => x._user.UserProfileId, "Användarprofil*", htmlAttributes: new { @class = "form-label mb-0 fw-bold" })
@Html.DropDownListFor(x => x._user.UserProfileId, new SelectList(profiles, "Id", "Name"), "Välj", htmlAttributes: new { @class = "form-select form-select-lg", id = "Id", required = true})
@Html.ValidationMessageFor(x => x._user.UserProfileId, "Error message", new { @class = "invalid-feedback" })
</div>
//Alternative 2
<div class="col-md-6 mb-3">
<label asp-for="_user.UserProfileId" class="form-label mb-0 fw-bold">Användarprofil*</label>
<select asp-items="@(new SelectList(@profiles,"Id", "Name"))" asp-for="_user.UserProfileId" class="form-select form-select-lg" aria-label="Användarprofil" required>
<option value="">Välj</option>
</select>
<div class="invalid-feedback">
Error message
</div>
</div>
HTML 助手(LabelFor
、DropDownFor
等)是在 2008 年左右的 ASP.NET 的第一个版本中引入的。第二种方法使用 Tag helpers,它是 ASP.NET Core 中作为新功能引入的。 HTML 帮助程序保留在 ASP.NET Core 中,主要是为了能够更轻松地将现有完整框架应用程序中的视图迁移到 .NET Core。
建议所有新开发使用 Tag Helper。它们以“设计人员友好”的方式实现,因此 UI 专家团队成员可以更轻松地使用它们,而不是使用具有多个重载的 C# 方法(这实际上是 HTML 帮助器).
我正在 .NET Core 3.1 中开发一个项目,遇到了 HTML-输入类型的不同语法类型。 查看编译后的 html 源代码时,它们看起来完全相同。
有什么区别?更喜欢哪一个?
//Alternative 1
<div class="col-md-6 mb-3">
@Html.LabelFor(x => x._user.UserProfileId, "Användarprofil*", htmlAttributes: new { @class = "form-label mb-0 fw-bold" })
@Html.DropDownListFor(x => x._user.UserProfileId, new SelectList(profiles, "Id", "Name"), "Välj", htmlAttributes: new { @class = "form-select form-select-lg", id = "Id", required = true})
@Html.ValidationMessageFor(x => x._user.UserProfileId, "Error message", new { @class = "invalid-feedback" })
</div>
//Alternative 2
<div class="col-md-6 mb-3">
<label asp-for="_user.UserProfileId" class="form-label mb-0 fw-bold">Användarprofil*</label>
<select asp-items="@(new SelectList(@profiles,"Id", "Name"))" asp-for="_user.UserProfileId" class="form-select form-select-lg" aria-label="Användarprofil" required>
<option value="">Välj</option>
</select>
<div class="invalid-feedback">
Error message
</div>
</div>
HTML 助手(LabelFor
、DropDownFor
等)是在 2008 年左右的 ASP.NET 的第一个版本中引入的。第二种方法使用 Tag helpers,它是 ASP.NET Core 中作为新功能引入的。 HTML 帮助程序保留在 ASP.NET Core 中,主要是为了能够更轻松地将现有完整框架应用程序中的视图迁移到 .NET Core。
建议所有新开发使用 Tag Helper。它们以“设计人员友好”的方式实现,因此 UI 专家团队成员可以更轻松地使用它们,而不是使用具有多个重载的 C# 方法(这实际上是 HTML 帮助器).