ASP.NET HtmlHelper
最后修改于 2025 年 4 月 3 日
在本文中,我们将探讨 ASP.NET 8 中的 HtmlHelper。HtmlHelper 是在 Razor 视图中生成 HTML 元素的一个关键组件。它简化了视图开发,并促进了代码重用。
ASP.NET 是一个跨平台、高性能的框架,用于构建现代 Web 应用程序。HtmlHelper 提供了方法,可以通过适当的模型绑定来创建表单控件和其他 HTML 元素。
基本定义
HtmlHelper 是 ASP.NET MVC 中的一个类,它提供了以编程方式生成 HTML 元素的方法。它有助于创建一致且可维护的视图。
HtmlHelper 方法会自动处理模型绑定、验证和属性生成。这减少了手动编写 HTML 的工作量和潜在的错误。
HtmlHelper 可在 Razor 视图中通过 Html 属性访问。它支持通过 HtmlHelper<TModel> 进行强类型辅助,以获得更好的 IntelliSense 和编译时检查。
ASP.NET HtmlHelper 示例
以下示例演示了如何在 ASP.NET 8 中使用 HtmlHelper 创建表单。
public class Product
{
public int Id { get; set; }
[Required]
[StringLength(100)]
public string Name { get; set; }
[Range(0.01, 10000)]
public decimal Price { get; set; }
[Display(Name = "In Stock")]
public bool InStock { get; set; }
[DataType(DataType.Date)]
[Display(Name = "Release Date")]
public DateTime ReleaseDate { get; set; }
}
此模型定义了一个带有验证属性的 Product。这些属性将由 HtmlHelper 用于生成适当的 HTML 和验证消息。
public class ProductsController : Controller
{
[HttpGet]
public IActionResult Create()
{
return View();
}
[HttpPost]
public IActionResult Create(Product product)
{
if (ModelState.IsValid)
{
// Save product to database
return RedirectToAction("Index");
}
return View(product);
}
}
控制器有两个操作:一个用于显示表单(GET),一个用于处理表单提交(POST)。POST 操作会检查模型的有效性。
@model Product
<h2>Create New Product</h2>
@using (Html.BeginForm())
{
<div class="form-group">
@Html.LabelFor(m => m.Name)
@Html.TextBoxFor(m => m.Name, new { @class = "form-control" })
@Html.ValidationMessageFor(m => m.Name)
</div>
<div class="form-group">
@Html.LabelFor(m => m.Price)
@Html.TextBoxFor(m => m.Price, new { @class = "form-control" })
@Html.ValidationMessageFor(m => m.Price)
</div>
<div class="form-group">
@Html.LabelFor(m => m.InStock)
@Html.CheckBoxFor(m => m.InStock)
</div>
<div class="form-group">
@Html.LabelFor(m => m.ReleaseDate)
@Html.EditorFor(m => m.ReleaseDate, new { htmlAttributes = new { @class = "form-control" } })
</div>
<button type="submit" class="btn btn-primary">Create</button>
}
此 Razor 视图演示了几个 HtmlHelper 方法。BeginForm 创建表单标签。LabelFor 根据模型属性生成标签。
TextBoxFor 创建绑定到模型属性的输入字段。CheckBoxFor 生成一个复选框。EditorFor 根据数据类型选择合适的编辑器。
ValidationMessageFor 显示验证消息。HTML 属性参数允许为元素添加 CSS 类和其他属性。
来源
Microsoft ASP.NET Core Views 文档
在本文中,我们探讨了 ASP.NET 8 中的 HtmlHelper。这项强大的功能在保持强类型和模型绑定的同时,简化了视图开发。