搭建.net Core WebApi 与 Vue Cli框架

此文章我将不会描述怎样使用Vue Cli和创建Vue项目。

1. 创建一个.net Core 的项目。

重点看图 在这里不要选api 要选React.js 原因是我们通过React.js模板来改成Vue Cli项目
在这里插入图片描述

2. 修改标题startup.cs

在这里插入图片描述

3. 删除ClientApp中的所有文件夹

4.在ClientApp中通过vue cli创建一个vue项目,由于vue项目不支持大写开头的项目文件名,你可以创建一个client-app文件夹,在这里创建一个vue项目然后在将client-app文件夹中的所有文件复制出来,放到ClientApp文件夹中,再删除client-app文件夹。

5.通过Nuget程序包下载VueCliMiddleware插件。

6.将此代码粘贴复制到如图位置

endpoints.MapToVueCliProxy(
                        "{*path}",
                        new SpaOptions { SourcePath = "ClientApp" },
                        npmScript: (System.Diagnostics.Debugger.IsAttached) ? "serve" : null,
                        regex: "Compiled successfully",
                        forceKill: true
                        );

在这里插入图片描述

7.修改 项目名.csproj 文件

在这里插入图片描述

8.设置跨域

在这里插入图片描述
到这一步基本就把框架搭建好了。现在咱们测试一下这个框架是否好使。

测试

1.首先创建一个控制器HelloWorldController.cs

在这里插入图片描述

public IActionResult Index()
        {
            var data = new[]
            {           
                "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
            }; 
            return Json(data);
        }

2.在vue项目中下载axios 在main.js中引用 并注意图中标记的位置

在这里插入图片描述

3.修改about.vue文件

在这里插入图片描述

4.当你运行项目看见这个界面时不要惊慌

在这里插入图片描述

这是因为我们访问的端口号已经不是5001了。而是这个如图
在这里插入图片描述
并且当你不想要每次运行窗口都要自动打开浏览器这进行以下操作。
1.右键项目属性。
2.找到调试将浏览器的对勾删掉。(当然是在停止项目运行的情况下)
在这里插入图片描述
3.结果 当你访问并出现这个界面是证明你搭建的框架成功了
在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
.NET Core Web Api 向 Vue3 主动推送数据,可以使用 SignalR 技术实现实时通信。SignalR 是一个 ASP.NET 的库,它可以让你轻松实现实时通信功能,如聊天室、实时数据更新等。 以下是实现步骤: 1. 在 .NET Core Web Api 中安装 SignalR 包。 ``` dotnet add package Microsoft.AspNetCore.SignalR ``` 2. 在 Startup.cs 文件中启用 SignalR 并配置路由。 ```csharp public void ConfigureServices(IServiceCollection services) { services.AddSignalR(); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { // ... app.UseEndpoints(endpoints => { endpoints.MapControllers(); endpoints.MapHub<MyHub>("/myhub"); // 配置 SignalR 路由 }); } ``` 3. 创建一个继承自 Hub 类的 MyHub 类,实现向客户端推送数据的方法。 ```csharp public class MyHub : Hub { public async Task SendMessage(string message) { await Clients.All.SendAsync("ReceiveMessage", message); // 向所有客户端推送消息 } } ``` 4. 在 Vue3 中安装 `@microsoft/signalr` 包。 ``` npm install @microsoft/signalr ``` 5. 在 Vue3 中创建 SignalR 连接并监听推送数据。 ```javascript import * as signalR from '@microsoft/signalr'; const connection = new signalR.HubConnectionBuilder() .withUrl('/myhub') // 与 .NET Core Web Api 中配置的路由保持一致 .build(); connection.start() // 启动连接 .then(() => { console.log('SignalR Connected!'); }) .catch(err => console.error(err)); connection.on('ReceiveMessage', message => { // 监听推送数据 console.log('Received message:', message); }); ``` 6. 在 .NET Core Web Api 中调用 MyHub 类的 SendMessage 方法即可向 Vue3 推送数据。 ```csharp public class MyController : ControllerBase { private readonly IHubContext<MyHub> _hubContext; public MyController(IHubContext<MyHub> hubContext) { _hubContext = hubContext; } [HttpGet("send-message")] public async Task<IActionResult> SendMessage(string message) { await _hubContext.Clients.All.SendAsync("ReceiveMessage", message); // 调用 MyHub 类的 SendMessage 方法 return Ok(); } } ``` 以上为大致实现步骤,具体实现需要根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值