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

Blazor中Blazorise <Link>标签内嵌内容致代码编译失败问题

Blazorise 标签嵌套内容编译失败问题

问题描述

使用Blazorise组件库的<Link>标签时,若标签为空则代码可正常运行;但只要在<Link>内部插入任何内容,代码就会编译失败,且返回的错误信息不准确。这并非Visual Studio的bug,代码本身确实无法通过编译。

核心问题代码

针对无法查看图片的用户,以下是可复现问题的核心代码(删除DELETE ME后代码即可正常运行):

@foreach(var Child in Children)
{
    <OrderedListItem>
         <ListGroup>
            <ListGroupItem>Name: <Link To=@($"/ide/hr_child_summary/{Child["Id"]}")>DELETE ME</Link></ListGroupItem>
            <ListGroupItem>SharePoint file prefix: @Child["SharePointFilePrefix"]</ListGroupItem>
            <ListGroupItem>Dependent? @Child["Dependent"]</ListGroupItem>
        </ListGroup>
    </OrderedListItem>
}

临时解决方案及完整代码

已通过使用原生<a>标签替代Blazorise的<Link>标签解决该问题,以下是完整可运行的组件代码(将代码中的<a href=...>替换为<Link To=...>即可复现原问题):

<Card> 
    <CardTitle>Relations Summary</CardTitle>
    <CardText>
        
        <ListGroup>

            <ListGroupItem>
                
                <CardSubtitle>Spouse Info</CardSubtitle>
                <ListGroup>
                    
                    <ListGroupItem>Name: <Link To=@($"/ISE/r_IDE_Summary/{IseInfo["SpouseMissionaryId"]}")>@IseInfo["SpouseName"]</Link></ListGroupItem>
                    <ListGroupItem>Employee ID: @IseInfo["SpouseEmpId"]</ListGroupItem>
                    <ListGroupItem>GL Employee ID: @IseInfo["SpouseGlEmpId"]</ListGroupItem>
                    <ListGroupItem>SharePoint file prefix: @IseInfo["SpouseSharePointFilePrefix"]</ListGroupItem>
                </ListGroup>
            </ListGroupItem>
            
            @if(Children?.Count > 0)
            {
                <ListGroupItem>
                    <CardSubtitle>Children</CardSubtitle>
                        <OrderedList>
                        
                        @foreach(var Child in Children)
                        {
                            <OrderedListItem>
                                <ListGroup>
                                    <ListGroupItem>Name: <a href="@($"/ide/hr_child_summary/{Child["Id"]}")">@Child["Name"]</a></ListGroupItem>
                                    <ListGroupItem>SharePoint file prefix: @Child["SharePointFilePrefix"]</ListGroupItem>
                                    <ListGroupItem>Dependent? @Child["Dependent"]</ListGroupItem>
                                </ListGroup>
                            </OrderedListItem>
                        }
                    </OrderedList>
                </ListGroupItem>
            }
        </ListGroup>
    </CardText>
</Card>

@code
{
    [Parameter]
    public Dictionary<string, string> IseInfo { get; set; }

    [Parameter]
    public List<Dictionary<string, string>> Children { get; set; }
}

注:<Link>组件来自Blazorise组件库,非自定义实现。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 08:17:02