You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Razor中asp-page标签助手跳转异常:链接指向当前页且href为空

Razor页面asp-page标签助手生成空href问题解决

使用Razor开发网站时,asp-page标签助手生成的<a>标签href属性为空,点击链接会跳转回当前页面。相关代码如下:

@page
@model PMSX.WebApp.Pages.Stock.ListModel
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
<div class="row">  
    <div class="col-6">  
        <h2 class="text-info">Stock List</h2>  
    </div>  
</div>  

<table>
<tr class="table-secondary">  
    <th>  
        @Html.DisplayNameFor(m => m.StockList[0].Symbol)  
    </th>  
    <th>  
        @Html.DisplayNameFor(m => m.StockList[0].StockName)  
    </th>  
    <th>  
        @Html.DisplayNameFor(m => m.StockList[0].Price)   
    </th>  
</tr>  

@foreach(var stock in Model.StockList)
{
    <tr>
        <td>
            <a asp-page="./Stock/" asp-route-id="@stock.Symbol">
                @Html.DisplayFor(m => stock.Symbol) 
            </a>
        </td>  
        <td>  
            <a asp-page="./Stock/" asp-route-id="@stock.Symbol">
                @Html.DisplayFor(m => stock.StockName)
            </a> 
        </td>  
        <td>  
            <a asp-page="./Stock/" asp-route-id="@stock.Symbol">
                @Html.DisplayFor(m => stock.Price)  
            </a>
        </td>  
    </tr>
}
</table>

问题原因

  1. asp-page属性的路径末尾带有斜杠./Stock/,导致Razor路由无法正确解析目标页面位置,生成空的href属性。
  2. 需确认目标页面是否存在于当前页面的同级目录(即Pages/Stock/Stock.cshtml),且目标页面的@page指令已正确定义路由参数。

解决方法

  1. 修正asp-page路径格式:去掉路径末尾的斜杠,改为asp-page="./Stock",让路由能正确匹配到目标页面。
  2. 验证目标页面配置:确保目标页面Stock.cshtml存在于Pages/Stock目录下,且页面顶部的@page指令包含对应的路由参数,比如:
@page "{id}"
@model PMSX.WebApp.Pages.Stock.StockModel

修改后的代码示例

将所有<a>标签的asp-page属性修改如下:

<a asp-page="./Stock" asp-route-id="@stock.Symbol">
    @Html.DisplayFor(m => stock.Symbol)
</a>

内容的提问来源于stack exchange,提问作者HoboJeff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 03:39:25