ASP.NET Core Razor页面与MVC中常见的HTML Tag Helpers
在ASP.NET Core的Razor Pages和MVC框架中,除了asp-for,还有多种实用的HTML Tag Helpers可用于简化视图开发。下面详细列出常用的辅助标记及其应用场景。
表单与URL路由相关
- asp-action 和 asp-controller
作用:为表单或链接生成指向指定控制器和操作的URL。
<form asp-action="Create" asp-controller="Product" method="post"> <button type="submit">提交</button> </form>表单提交后将请求发送到
Product控制器的Create方法。 - asp-route-{参数名}
作用:向URL中注入自定义路由参数。
<a asp-action="Details" asp-controller="Product" asp-route-id="@Model.ProductId">查看详情</a>生成的链接会包含
id参数,值为Model.ProductId。 - asp-antiforgery
作用:在表单中嵌入防伪令牌,防范跨站请求伪造(CSRF)攻击。
<form asp-action="Create" asp-controller="Product" method="post"> <input asp-antiforgery="true" /> <button type="submit">提交</button> </form>启用后,服务器会验证令牌的有效性。
下拉框与列表选择器
- asp-items
作用:为
select、单选按钮组或复选框组填充选项集合。<select asp-for="SelectedCategoryId" asp-items="Model.CategoryList"> <option value="">请选择分类</option> </select>Model.CategoryList通常为SelectList类型,自动生成选项。 - asp-selected
作用:控制复选框或单选按钮的默认选中状态。
@foreach (var item in Model.ItemList) { <input type="checkbox" asp-for="@item.IsSelected" asp-selected="@item.IsPreSelected" /> <label asp-for="@item.IsSelected">@item.Name</label> }若
item.IsPreSelected为true,该复选框会被预设为选中。
图像与链接处理
- asp-src
作用:生成图像
src属性,支持虚拟根路径。<img asp-src="~/images/product.jpg" alt="产品图片" />~代表应用根目录,自动解析为正确URL。 - asp-href
作用:基于路由规则生成链接
href属性。<a asp-href="~/Home/About">关于我们</a>根据路由配置输出完整URL。
视图组件与部分视图
- asp-view-component
作用:在视图中调用视图组件。
<vc:my-view-component parameter="@Model.SomeValue"></vc:my-view-component>此处调用
MyViewComponent并传递参数。 - asp-partial
作用:嵌入部分视图。
<partial name="_MyPartialView" model="@Model.PartialModel" />引入名为
_MyPartialView的部分视图,并传入模型数据。