剃须刀中的锚标记助手
Anchor tag helper in razor
我正在尝试导航到剃须刀应用程序当前目录之外的详细信息页面。如果我使用这个静态标签,它工作正常
<a href="/campdet/create/@Model.Camp.IdCamp">Details</a>
但是,如果我尝试使用其中一个标签助手,它会在 href 部分生成一个空字符串
<a asp-route="/campdet/create/1" class="btn btn-info"><i class="material-icons">zoom_in</i> </a>
<a asp-page="/campdet/create/1" class="btn btn-info"><i class="material-icons">zoom_in</i> </a><a href="/campdet/create/@Model.Camp.IdCamp">Details</a>
目标页面(campdet\create)是这样限制的
@page "{id:int}"
我在启动时没有任何特殊的路由配置。
我做错了什么?
在asp-page属性中指定页面名称,在asp-route-id[=21]中指定路由=] 属性:
例如:
<a asp-page="/campdet/create" asp-route-id="@Model.Camp.IdCamp">zoom_in</a>
锚标记助手以 HTML 锚 () 标记为目标,该标记用于根据传递给各种自定义属性的值生成相对 link。它还可用于生成外部资源的绝对 URL。锚标记助手的作用是根据传递给其自定义属性的参数值生成 (href) 属性。
格式:
@Html.ActionLink("Some link text", "MyAction", "MyController", 协议: null, hostName: null, fragment: "MyAnchor", routeValues: null, htmlAttributes: null)
示例 1('Details' 页面上的元素,单击 link 将重定向到 'Edit' 的特定部分页,(例如,'Edit' 页的底部):
<span style="float:right;">@Html.ActionLink(linkText: "Edit Notes", actionName: "Edit", controllerName: "Form", protocol: null, hostName: null, fragment: "anchor", routeValues: new { id = Model.FormId }, htmlAttributes: new { @class = "badge badge-pill badge-warning" })</span>
示例 2('Edit' 页面上的元素,“name='anchor'”和“id = 'anchor'”位于最顶部标记)
<div name="anchor" id="anchor"class="form-group">
<div class="col-md-12">
<span>@Html.Label("ReviewStatusNotes", "Notes (280 char max):", new { style = "font-weight:500" })</span>
<span>@Html.TextAreaFor(model => model.ReviewStatusNotes, new { @class = "form-control", rows = "5" })</span>
@Html.ValidationMessageFor(model => model.ReviewStatusNotes, "", new { @class = "text-danger" })
</div>
</div>
输出:
.../Form/Edit/8#anchor
我正在尝试导航到剃须刀应用程序当前目录之外的详细信息页面。如果我使用这个静态标签,它工作正常
<a href="/campdet/create/@Model.Camp.IdCamp">Details</a>
但是,如果我尝试使用其中一个标签助手,它会在 href 部分生成一个空字符串
<a asp-route="/campdet/create/1" class="btn btn-info"><i class="material-icons">zoom_in</i> </a>
<a asp-page="/campdet/create/1" class="btn btn-info"><i class="material-icons">zoom_in</i> </a><a href="/campdet/create/@Model.Camp.IdCamp">Details</a>
目标页面(campdet\create)是这样限制的
@page "{id:int}"
我在启动时没有任何特殊的路由配置。 我做错了什么?
在asp-page属性中指定页面名称,在asp-route-id[=21]中指定路由=] 属性: 例如:
<a asp-page="/campdet/create" asp-route-id="@Model.Camp.IdCamp">zoom_in</a>
锚标记助手以 HTML 锚 () 标记为目标,该标记用于根据传递给各种自定义属性的值生成相对 link。它还可用于生成外部资源的绝对 URL。锚标记助手的作用是根据传递给其自定义属性的参数值生成 (href) 属性。
格式:
@Html.ActionLink("Some link text", "MyAction", "MyController", 协议: null, hostName: null, fragment: "MyAnchor", routeValues: null, htmlAttributes: null)
示例 1('Details' 页面上的元素,单击 link 将重定向到 'Edit' 的特定部分页,(例如,'Edit' 页的底部):
<span style="float:right;">@Html.ActionLink(linkText: "Edit Notes", actionName: "Edit", controllerName: "Form", protocol: null, hostName: null, fragment: "anchor", routeValues: new { id = Model.FormId }, htmlAttributes: new { @class = "badge badge-pill badge-warning" })</span>
示例 2('Edit' 页面上的元素,“name='anchor'”和“id = 'anchor'”位于最顶部标记)
<div name="anchor" id="anchor"class="form-group">
<div class="col-md-12">
<span>@Html.Label("ReviewStatusNotes", "Notes (280 char max):", new { style = "font-weight:500" })</span>
<span>@Html.TextAreaFor(model => model.ReviewStatusNotes, new { @class = "form-control", rows = "5" })</span>
@Html.ValidationMessageFor(model => model.ReviewStatusNotes, "", new { @class = "text-danger" })
</div>
</div>
输出:
.../Form/Edit/8#anchor