剃刀中的锚标签辅助器

时间:2019-03-11 15:29:58

标签: asp.net-core razor routing razor-pages

我正在尝试导航到剃刀应用程序当前目录之外的详细信息页面。如果我使用此静态标签,就可以了

<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}"

我在启动时没有任何特殊的路由配置。 我在做什么错了?

2 个答案:

答案 0 :(得分:1)

asp-page 属性中指定页面名称,并在 asp-route-id 属性中指定路由: EG:

<a asp-page="/campdet/create" asp-route-id="@Model.Camp.IdCamp">zoom_in</a>

答案 1 :(得分:0)

anchor标签帮助程序针对HTML anchor()标签,该标签用于根据传递给各种自定义属性的值生成相对链接。它也可以用于生成指向外部资源的绝对URL。定位标记帮助程序的作用是根据传递给其自定义属性的参数值生成一个(href)属性。

格式

@ Html.ActionLink(“某些链接文本”,“ MyAction”,“ MyController”,协议:null,主机名:null,片段:“ MyAnchor”,routeValues:null,htmlAttributes:null)

示例1 (“详细信息”页面上的元素,该链接带有点击链接,该链接将重定向到“编辑”页面的特定部分(例如,“编辑”页面的底部)) :

<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 (位于“编辑”页面上最顶部标记中的名称为“ 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