BrowserLink定位代码文件

使用Visual Studio 2019开发,如果是基于.Net Framework 的MVC项目,可以使用browser link功能,从浏览器定位到vs中对应的代码页面 ,此功能可以让开发者快速找到代码文件,** 请问基于.Net5创建的MVC项目如何实现从浏览器定位到vs中项目的UI界面?**

img

底层原理就是在你的网页中插入了一段JS代码,VS启动一个服务端,插入的JS代码跟这个服务端进行通信

对于基于.Net5创建的MVC项目,可以使用Visual Studio 2019中的“Blazor WebAssembly”功能实现类似的浏览器到代码页面的快速定位。
具体步骤如下:
1、在Visual Studio 2019中打开.Net5的MVC项目,并选择添加Blazor WebAssembly项目。

2、在Blazor WebAssembly项目中添加以下依赖项:

Microsoft.VisualStudio.Web.BrowserLink

Microsoft.AspNetCore.Diagnostics.BrowserLink

Microsoft.AspNetCore.Blazor.Server

3、在Startup.cs文件中将以下代码添加到ConfigureServices方法中:


services.AddServerSideBlazor().AddCircuitOptions(options => { options.DetailedErrors = true; });

4、在Startup.cs文件中将以下代码添加到Configure方法中:


if (env.IsDevelopment())
{
    app.UseBrowserLink();
}

5、启动.Net5的MVC项目,然后在浏览器中打开应用程序。

6、从Visual Studio 2019中打开.cshtml文件或其他UI组件,单击“Browser Link”按钮。这将在浏览器中打开一个新窗口,并显示与该UI组件相关联的位置。

以上就是基于.Net5创建的MVC项目中如何使用“Blazor WebAssembly”功能实现从浏览器定位到vs中项目的UI界面的方法。

本回答引用GPT
从Visual Studio 2019版本16.8开始,Browser Link已经被弃用了,因此.Net5创建的MVC项目是无法使用Browser Link功能的。不过,可以使用Blazor WebAssembly来实现类似的功能。

具体步骤如下:

在项目中添加Blazor WebAssembly:
在Visual Studio中,右键单击项目,选择“添加” -> “新项目”,在“创建新项目”对话框中选择“Blazor WebAssembly App”,然后单击“下一步”。在“配置新项目”对话框中,选择“ASP.NET Core Hosted”,然后单击“创建”按钮。

在Startup.cs文件中启用Blazor WebAssembly:
在ConfigureServices方法中添加以下代码:

services.AddHttpContextAccessor();
services.AddServerSideBlazor();

在Configure方法中添加以下代码:

app.UseEndpoints(endpoints =>
{
    endpoints.MapBlazorHub();
    endpoints.MapFallbackToPage("/_Host");
});

在页面中添加Blazor WebAssembly组件:
在页面中添加以下代码:

<component type="typeof(BlazorApp.Shared.BrowserLinkComponent)" render-mode="ServerPrerendered" />

创建BrowserLinkComponent组件:
在Shared文件夹中创建BrowserLinkComponent.cs文件,添加以下代码:

using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Http;
using System;

namespace BlazorApp.Shared
{
    public class BrowserLinkComponent : ComponentBase
    {
        [Inject] protected IHttpContextAccessor HttpContextAccessor { get; set; }

        protected override void OnInitialized()
        {
            base.OnInitialized();

            var request = HttpContextAccessor.HttpContext.Request;
            var path = request.Path.Value;
            var lineNumber = request.Query["lineNumber"];
            var columnNumber = request.Query["columnNumber"];

            if (!string.IsNullOrEmpty(lineNumber) && !string.IsNullOrEmpty(columnNumber))
            {
                Console.WriteLine($"Path: {path}, Line: {lineNumber}, Column: {columnNumber}");
            }
        }
    }
}

在页面中使用Browser Link:
在浏览器中打开应用程序,然后在地址栏中输入以下URL:

https://localhost:port/_framework/aspnetcore-browser-refresh.js?baseUrl=https://localhost:port&workspace=__SERVER__&culture=zh-CN&origin=https://localhost:port&path=/path/to/controller/action?lineNumber=10&columnNumber=10
其中,port代表应用程序的端口号,/path/to/controller/action是要跳转到的控制器和操作方法的路径,lineNumber和columnNumber指定要跳转到的代码行和列。

这样,在浏览器中点击链接时,就可以从浏览器定位到Visual Studio中对应的代码页面了。