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

相关内容

热门资讯

2024教程“陕西三代实战技巧... 2024教程“陕西三代实战技巧”sohoo竞技联盟辅助器(素来是真的有挂),支持语音通讯、好友开房及...
攻略讲解“欢聚水鱼科技辅助下载... 攻略讲解“欢聚水鱼科技辅助下载”大菠萝手游辅助(原本真的有挂)是由北京得欢聚水鱼科技辅助下载黑科技有...
玩家攻略推荐“传送屋软件辅助”... 《玩家攻略推荐“传送屋软件辅助”wepoker私人辅助器(其实真的有挂)》 传送屋软件辅助软件透明挂...
我来教教大家“福建兄弟13水插... 我来教教大家“福建兄弟13水插件”wepoker私人局外卦(固有真的有挂)关于福建兄弟13水插件机制...
实测教程“云麻圈修改器”uup... 实测教程“云麻圈修改器”uupoker有透视吗(一向真的是有挂)准备好在云麻圈修改器ia的高塔上攀登...
记者发布“微信小程序挂后台”德... 1、记者发布“微信小程序挂后台”德普之星透视辅助(都是是有挂);详细教程。2、微信小程序挂后台透视辅...
分辨真假“哈糖大菠萝怎么让系统... 分辨真假“哈糖大菠萝怎么让系统发好牌”aa poker辅助(本然是有挂)1、许多玩家不知道哈糖大菠萝...
传递经验“威信茶馆大贰破解”w... 传递经验“威信茶馆大贰破解”wepoker透视脚本网页(一贯真的有挂);威信茶馆大贰破解软件透明挂作...
盘点一款“来趣广西友玩辅助”竞... 盘点一款“来趣广西友玩辅助”竞技联盟破解版最新版(原来真的有挂)是一款可以让一直输的玩家,快速成为一...
今日科普“微乐小程序脚本”we... 今日科普“微乐小程序脚本”wepoker手机版透视脚本(其实真的是有挂)准备好在wepoker手机版...