如何添加2sxc工具栏按钮:跳转指定页面且不新开窗口(带URL参数)
解决2sxc工具栏按钮自定义跳转(带参数、当前标签页、自定义样式)问题
核心问题原因
Info()方法默认会为链接添加target="_blank"属性,导致跳转新开窗口;同时你可以直接通过parameters参数传递URL参数,无需手动拼接链接字符串。
解决方案代码示例
方式1:直接通过Info()传递参数并禁用新窗口
@{ var uiCode = new { Icon = svgIcon, // 确保svgIcon是有效的SVG代码或图标类名 Title = "Assign Users", Color = "purple" }; int targetPageId = 176; } @foreach(var item in YourDataSource) { var tbEdit = Kit.Toolbar.Empty(item).Edit(); <span class="mx-2" @((item.String("RuleType") == "users") ? tbEdit.Info( link: Link.To(pageId: targetPageId), parameters: new { assignId = item.Id }, tweak: tb => tb.Ui(uiCode).Settings(new { OpenInNewWindow = false }) ) : tbEdit ) > @item.String("Name") </span> }
方式2:预构建链接后禁用新窗口
如果需要提前构建完整链接,同样通过Settings禁用新窗口:
@{ var uiCode = new { Icon = svgIcon, Title = "Assign Users", Color = "purple" }; int targetPageId = 176; } @foreach(var item in YourDataSource) { var tbEdit = Kit.Toolbar.Empty(item).Edit(); // 用匿名对象传递参数,自动处理URL编码 string linkTarget = Link.To(pageId: targetPageId, parameters: new { assignId = item.Id }); <span class="mx-2" @((item.String("RuleType") == "users") ? tbEdit.Info( link: linkTarget, tweak: tb => tb.Ui(uiCode).Settings(new { OpenInNewWindow = false }) ) : tbEdit ) > @item.String("Name") </span> }
关键说明
- 自定义样式生效:确保
svgIcon是有效的SVG字符串(如<svg>...</svg>)或图标库类名(如fas fa-user),Color属性会直接应用到按钮的样式中。 - 参数传递规范:使用匿名对象传递
parameters,2sxc会自动处理URL编码,避免手动拼接字符串导致的错误。 - 禁用新窗口:通过
Settings(new { OpenInNewWindow = false })覆盖默认行为,让跳转在当前标签页执行。
内容的提问来源于stack exchange,提问作者Jeremy Farrance
相关产品推荐
相关产品推荐

