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
相关产品推荐
相关产品推荐

