使用Visual Studio 2019开发,如果是基于.Net Framework 的MVC项目,可以使用browser link功能,从浏览器定位到vs中对应的代码页面 ,此功能可以让开发者快速找到代码文件,** 请问基于.Net5创建的MVC项目如何实现从浏览器定位到vs中项目的UI界面?**
底层原理就是在你的网页中插入了一段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中对应的代码页面了。