Blazor在使用带有控制器路由的iframe源时无法正确路由(aspnethosted)
创始人
2024-12-22 05:30:23
0

在 Blazor 项目中,当使用控制器路由作为 iframe 的源时,可以通过在 Startup.cs 文件中注册中间件,在请求处理的时候将请求转发到 Blazor 本身的路由处理中。具体方法如下:

  1. 在 Startup.cs 文件中添加以下配置:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    // ...

    app.Use(async (context, next) =>
    {
        var path = context.Request.Path.Value;

        if (path.StartsWith("/myController"))
        {
            context.Request.Path = "/"; // 仅适用于 Blazor 默认的带前缀路由设置。如果使用了自定义前缀,需要根据实际情况修改该值。
            context.Request.QueryString = new QueryString($"?iframePath={path}");

            await next();
        }
    });

    app.UseStaticFiles();

    app.UseRouting();

    // ...
}
  1. 在 Blazor 页面中,使用 JavaScript 调用 Frame 的 onLoad 事件,向服务器传递 Frame 的 URL。


  1. 在服务器端,处理 BlazorRouteIframe 路由,将 iframe 的 URL 转发给 Blazor 页面处理,返回处理后的 URL。
[HttpGet("BlazorRouteIframe")]
public async Task BlazorRouteIframe(string path)
{
    var client = _httpClientFactory.CreateClient("BlazorWebAssemblyApp");

    var response = await client.GetAsync(path);

    response.EnsureSuccessStatusCode();

    var result = await response.Content.ReadAsStringAsync();

    var iframePath

相关内容

热门资讯

十分钟了解!江西中至游戏辅助,... 十分钟了解!江西中至游戏辅助,多乐够级捕鱼辅助软件,高科技教程(有挂秘籍)1、每一步都需要思考,不同...
四分钟了解!边锋老友二打一有挂... 四分钟了解!边锋老友二打一有挂吗,369互娱麻将,系统教程(有挂攻略)所有人都在同一条线上,像星星一...
八分钟了解!微信雀神辅助器,乐... 八分钟了解!微信雀神辅助器,乐乐围棋入门怎么开挂,透明教程(有挂脚本)1、八分钟了解!微信雀神辅助器...
3分钟了解!老友互娱有后台吗,... 3分钟了解!老友互娱有后台吗,欢乐斗地主助手神器,扑克教程(有挂透明);1、欢乐斗地主助手神器ai辅...
五分钟了解!一起跑得快吗,算番... 五分钟了解!一起跑得快吗,算番宝典app脚本,AI教程(有挂揭秘)一、算番宝典app脚本AI软件牌型...
十分钟了解!爱来掌中宝记牌器,... 十分钟了解!爱来掌中宝记牌器,同城字牌有挂吗,透明挂教程(有挂辅助挂)1、在爱来掌中宝记牌器ai机器...
九分钟了解!土豆互娱有挂吗,小... 九分钟了解!土豆互娱有挂吗,小吆干瞪眼有挂吗,2025新版技巧(有挂普及)1、金币登录送、破产送、升...
6分钟了解!一起宁德麻将有挂吗... 6分钟了解!一起宁德麻将有挂吗,牵手跑胡子外挂怎么用,玩家教程(有挂机密);1、下载好牵手跑胡子外挂...
8分钟了解!闲娱江西棋牌打盾系... 8分钟了解!闲娱江西棋牌打盾系统发好牌,宝宝游戏吗,扑克教程(有挂介绍)一、闲娱江西棋牌打盾系统发好...
4分钟了解!边锋斗地主修改器,... 4分钟了解!边锋斗地主修改器,开心十三张是否外挂,教你攻略(有挂黑科技)开心十三张是否外挂辅助器中分...