目录

需求

解决方案

外部参考


在UI组件上使用Vue JS设置ASP.NET Core 2.2应用程序,而不使用npm / webpack。

需求

你被WayKurat雇用了,这是一家开发vue js/ASP.NET核心应用程序的虚拟公司。

第二天,你迟来到办公室。你的老板在你的办公桌旁等着你,当他注意到你的行为时,他会露出笑容。幸运的是,他并没有为你迟到而生气,他很高兴告诉你他希望你从头开发一个简单的网络应用程序,该应用程序将列出WayKurat订阅者(订阅web api已经由讨厌的同事开发完成)。

您需要在VS 2017上使用ASP .NET Core 2.2并要求尝试使用libman而不是bower / npm或手动下载libs。

解决方案

创建一个新的ASP.NET Core应用程序,将项目名称设置为WayKuratWeb.SimpleVueJs

选择ASPMVC项目模板

你的老板喜欢vue js所以我们将使用Libman安装Vue。右键单击项目,然后点击

添加 - >添加客户端库...

将显示Libman添加库窗口,键入“vue”,然后在下拉列表中单击vue(可能是您的最终版本)。选择特定文件,按下图所示勾选文件,然后点击安装。

现在安装了vue,让我们创建一个vue组件。
在wwwroot / js/文件夹下创建一个新的js文件 
将文件名设置为VueSubscriberListComponent.js(只是一个例子,你可以像你的奶奶一样称呼它)

接下来粘贴这个js代码。这将是我们的Vue组件。

var subscriberListComponent = new Vue({el: '#subscriber-list-component',data: {subscribers: [],isViewReady: false},methods: {refreshData: function () {this.isViewReady = false;//dummy data for now, will update this latervar subscribers = [{ name: 'jic', email: 'paytercode@waykurat.com' },{ name: 'kin', email: 'monsterart@waykurat.com' }];this.subscribers = subscribers;this.isViewReady = true;}},created: function () {this.refreshData();}
});

更新项目的/Views/Home/Index.cshtml文件以引用vue和我们的组件

@{ViewData["Title"] = "Home Page";
}
<div class="text-center"><div id="subscriber-list-component"><h3>WayKurat Subscribers </h3><div v-if="isViewReady == true"><ol><li v-for="u in subscribers">{{ u.name }} - {{u.email}}</li></ol><button class="btn btn-primary btn-block" v-on:click="refreshData">REFRESH</button></div><div v-else><div>Loading data...</div></div></div>
</div>
@section Scripts{<script src="~/lib/vue/vue.js"></script><script src="~/js/VueSubscriberListComponent.js"></script>
}

在浏览器上运行应用,您的应用将如下所示。如果没有,请检查浏览器控制台是否有错误(请在提交stackoverflow问题之前检查它,它不是黑盒子)

现在是时候让我们使用你同事完成的Web API。
但事情并不像他们看起来那样,他昨天没有上传他的代码,看起来他正在擅离职守。
所以你现在被迫写一个虚拟的web api。

添加一个新的控制器,将名称设置为SubscribersController.cs然后粘贴此代码。

using System.Collections.Generic;
using Microsoft.AspNetCore.Mvc;namespace WayKuratWeb.SimpleVueJs.Controllers
{[Route("/api/[controller]/[action]/")]public class SubscribersController : Controller{[HttpGet]public IActionResult GetAll(){//hard coded data for brevity, this must be from a data store on the real worldvar subs = new List<Subscriber>();subs.Add(new Subscriber() { Id=1,Name = "JEK",Email="jekhaxor@test.test"});subs.Add(new Subscriber() { Id = 1, Name = "Jikie", Email = "jekiedraws@test.test" });return Ok(subs);}}public class Subscriber{public int Id { get; set; }public string Name { get; set; }public string Email { get; set; }}
}

现在添加了控制器,将使用ajax在我们的组件上使用它。
您准备编写一个发送XMLHttpRequest的简单js,但你的老板看到了它并坚持使用axios。
好吧,如果这就是他想要的,那就让我们做吧。

通过libman安装Axios。像安装vue时一样打开libman窗口。键入“axios”,然后选择文件,如下图所示。

在Index.cshtml上添加对axios的引用

@{ViewData["Title"] = "Home Page";
}
<div class="text-center"><div id="subscriber-list-component"><h3>WayKurat Subscribers </h3><div v-if="isViewReady == true"><ol><li v-for="u in subscribers">{{ u.name }} - {{u.email}}</li></ol><button class="btn btn-primary btn-block" v-on:click="refreshData">REFRESH</button></div><div v-else><div>Loading data...</div></div></div>
</div>
@section Scripts{<script src="~/lib/vue/vue.js"></script><script src="~/lib/axios/axios.js"></script><script src="~/js/VueSubscriberListComponent.js"></script>
}

更新VueSubscriberListComponent.js以使用我们的web api

var subscriberListComponent = new Vue({el: '#subscriber-list-component',data() {return {subscribers: [],isViewReady: false};},methods: {refreshData: function () {var self = this;this.isViewReady = false;//UPDATED TO GET DATA FROM WEB APIaxios.get('/api/subscribers/getall/').then(function (response) {self.subscribers = response.data;self.isViewReady = true;}).catch(function (error) {alert("ERROR: " + (error.message|error));});}},created: function() {this.refreshData();}
});

您在浏览器上检查了您的应用程序,并按预期运行。您做了自己的部分,您已将代码上传到repo并准备午餐。
现在你刚刚使用了libman并编写了一个vue compoenent。

外部参考

你会在这里了解更多

https://vuejs.org/v2/guide/

https://docs.microsoft.com/en-us/aspnet/core/?view=aspnetcore-2.2

原文地址:https://www.codeproject.com/Tips/1271379/Simple-ASP-NET-CORE-2-2-app-plusVue-JS

简单的ASP.NET CORE 2.2 app + Vue JS相关推荐

  1. ASP.NET Core 实战:使用ASP.NET Core Web API 和 Vue.js 搭建前后端分离项目

    一.前言 这几年前端的发展速度就像坐上了火箭,各种的框架一个接一个的出现,需要学习的东西越来越多,分工也越来越细,作为一个 .NET Web 程序猿,多了解了解行业的发展,让自己扩展出新的技能树,对自 ...

  2. .NET Core + JWT令牌认证 + Vue.js 通用动态权限(RBAC)管理系统框架[DncZeus]开源啦!!!...

    DncZeus 前言 关于 DncZeus DncZeus = Dnc + Zeus "Dnc"--.Net Core 的缩写: "Zeus"--中文译为宙斯, ...

  3. 开源干货!.NET Core + JWT令牌认证 + Vue.js通用动态权限(RBAC)管理系统框架[DncZeus]开源

    DncZeus 前言 关于 DncZeus DncZeus = Dnc + Zeus "Dnc"–.Net Core 的缩写: "Zeus"–中文译为宙斯,是古 ...

  4. Asp.net Core 配合 PDFObject 和 pdf.js 在浏览器显示pdf文件

    Asp.net Core 配合 PDFObject 和 pdf.js 在浏览器直接显示pdf文件 测试环境的浏览器版本: Chrome :90.0.4430.93(64 位) FireFox :88. ...

  5. 更简单的ASP.NET Core多语言(国际化和本地化, 欢迎转载)

    其实在.NET Core有更好的多语言实现方式 #新建项目(.NET Core MVC) #在项目根目录新建Resources, 在Resources目录里面添加Program.en-US.resx ...

  6. ASP.NET Core 实战:基于 Jwt Token 的权限控制全揭露

    一.前言 在涉及到后端项目的开发中,如何实现对于用户权限的管控是需要我们首先考虑的,在实际开发过程中,我们可能会运用一些已经成熟的解决方案帮助我们实现这一功能,而在 Grapefruit.VuCore ...

  7. 开源干货!.NET Core + Vue.js通用动态权限(RBAC)管理系统框架[DncZeus]开源

    DncZeus 前言 关于 DncZeus DncZeus = Dnc + Zeus "Dnc"--.Net Core 的缩写: "Zeus"--中文译为宙斯, ...

  8. ASP.NET Core 异常和错误处理 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 异常和错误处理 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 异常和错误处理 上一章节中,我们学习了 ASP.NET Cor ...

  9. ASP.NET Core Razor 标签助手 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core Razor 标签助手 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Razor 标签助手 上一章节我们介绍了视图导入,学习了 ...

最新文章

  1. 有哪些 AI 行业圈内人才能看懂的笑话?
  2. keras终止训练后显存不释放_Keras实现Large-scale Bisample Learning on ID vs. Spot Face Recognition...
  3. C#实现从服务器上下载DLL文件
  4. 五分钟教你如何用函数计算部署钉钉群发机器人
  5. swiper鼠标hover停止自动轮播_swiper滑块组件
  6. 学习SQL:SQL Server日期和时间函数
  7. 04,Django Form源码阅读
  8. 编译原理第三章学习总结
  9. 【附干货】卸载CAD后将注册表清理干净的方法及步骤
  10. linux脚本写的计算器,Linux bc命令实现数学计算器
  11. 修改U盘、移动硬盘时提示目标文件夹访问被拒绝的问题解决思路
  12. 10_clickhouse,SummingMergeTree,AggregatingMergeTree(基于表,物化视图的使用)
  13. 计算机休眠期死机,电脑休眠状态频繁死机怎么处理
  14. ERR_CACHE_MISS的解决方案
  15. Tunnello安装指南
  16. 5.里氏代换原则依赖倒置原则
  17. 4.CRH寄存器和CRL寄存器
  18. python中callable什么意思_Python中的callable是基于什么样的机制实现的
  19. 【学习笔记】IP地址块的聚合
  20. python自动化办公教程书籍_盘点使用Python进行自动化办公所需要的知识点

热门文章

  1. 没有到主机的路由_网络基础知识:TCP协议之跟踪路由
  2. php引入odbc模块,php如何用odbc调用存储过程?
  3. 质量不同的球java编程_荐非常经典的java编程题全集-共50题(1-10)...
  4. 【海报设计灵感】潮翻天的波普艺术海报设计
  5. 设计师应该知道的配色工具,有效提高效率和审美
  6. web\app可视化图表设计模板,UI设计师临摹学习的帮手
  7. mysql java教程_mysql总结
  8. saas系统是什么_为什么SAAS食堂管理系统更受人们的欢迎?
  9. qwt需要添加到qcreator的东西
  10. 拓扑检查中的一些问题(为啥没自相交)