VS 2017开发ASP.NET Core Web应用过程中发现的一个重大Bug

简介:   今天试着用VS 2017去开发一个.net core项目,想着看看.net core的开发和MVC5开发有什么区别,然后从中发现了一个VS2017的Bug。  首先,我们新建项目,ASP.NET Core Web应用程序,如图:新建好后,我们按照习惯,在controller文件夹上面,点击鼠标右键,添加控制器...,出现了如下界面: 这个对话框什么意思呢?怎么会提示添加依赖项呢?按理来说,我们直接调试运行,项目就跑起来了!!!先不管他,我们直接点击添加,然后稍等一会儿,等他添加依赖。

  今天试着用VS 2017去开发一个.net core项目,想着看看.net core的开发和MVC5开发有什么区别,然后从中发现了一个VS2017的Bug。

  首先,我们新建项目,ASP.NET Core Web应用程序,如图:

新建好后,我们按照习惯,在controller文件夹上面,点击鼠标右键,添加控制器...,出现了如下界面:

 

这个对话框什么意思呢?怎么会提示添加依赖项呢?按理来说,我们直接调试运行,项目就跑起来了!!!

先不管他,我们直接点击添加,然后稍等一会儿,等他添加依赖。完成后,出现下面这个页面:

 

 

大概看了一下,项目中实际上 都已经配置好了,不管他我们继续。

然后,我们再次右键 -> 添加控制器...,如图:

 

 

我们输入UserController,这次成功的添加了控制器,我们在View()上面,点击鼠标右键,看到如下菜单:

 

 

这个时候,我们发现,并没有我们想要的“添加视图...“菜单,我看过一些其他人的教程,他们都是自己手动到Views目录添加的。

好吧,那就添加吧,添加完运行了一下,结果是正确的。

这个时候,我看了一下项目默认生成的HomeContorller,发现一个问题,这里面的View()上面点击右键菜单,竟然有“添加视图...”这个菜单,如图:

 

 

而且,鼠标放到View()上面,还会显示视图的路径,如图:

 

 

但是,到我们新建的UserController里面,什么都没有,这是不合理的,肯定是我们哪里操作的不对,才会造成这样的情况。

所以,经过一番研究,我发现一个问题,我们通过右键 -> 添加新项...,对话框中选择如下的控制器(ASP.NET Core),创建的出来的控制器,右键菜单会出现”添加视图...“,如图:

 

 

 

于是,我愉快的点击右键 ->添加视图...,完成了操作,结果也正如我们所料,VS2017自动新建了目录和cshtml文件。

 

但是,我们回来看,控制器里面的View()还是显示红色,并不像HomeController中那样;这说明,VS2017并没有识别我们新建的视图。

刚好我的电脑安装的有Resharper,我鼠标放过去出现下面提示,如图:

 

于是,我选择了第一个,添加了视图,发现,这次才是完全对了,和HomeController中一模一样了。

没有安装Resharper的,大家可以通过以下方法添加视图,

1.按照控制器添加好文件夹,这里是Test.

2.在新建的文件夹上面,鼠标右键 -> 添加新建项...,出现如下对话框:

 

 

输入对应的方法名即可。

 

总结:

  从上面的操作种种迹象发现,VS2017这里的右键菜单是错误的,默认添加的都是MVC5的控制器和视图,所以才会出现添加MVC依赖项那个对话框。于是我又重新新建了一个项目测试了一下,发现那个“添加MVC依赖项”的对话框没有出现。

后面大家开发时,要记得用正确的方式添加控制器,至于视图,还是要手动添加的,如果有Resharper则按下Alt +Enter键,回车即可。希望微软早日修复这个Bug。

 

 作者:雲霏霏

.NET QQ交流群:243633526    安卓QQ交流群:227526925   更多类型交流群敬请期待!

 博客地址:http://www.cnblogs.com/yunfeifei/

 Github地址:https://github.com/yunfeifei

 声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。非商业,未授权,贴子请以现状保留,转载时必须保留此段声明,且在文章页面明显位置给出原文连接。

如果大家感觉我的博文对大家有帮助,请推荐支持一把,给我写作的动力。

 

目录
相关文章
|
15天前
|
前端开发 JavaScript 关系型数据库
从前端到后端:构建现代化Web应用的技术探索
在当今互联网时代,Web应用的开发已成为了各行各业不可或缺的一部分。从前端到后端,这篇文章将带你深入探索如何构建现代化的Web应用。我们将介绍多种技术,包括前端开发、后端开发以及各种编程语言(如Java、Python、C、PHP、Go)和数据库,帮助你了解如何利用这些技术构建出高效、安全和可扩展的Web应用。
|
20天前
|
监控 JavaScript 前端开发
《理解 WebSocket:Java Web 开发的实时通信技术》
【4月更文挑战第4天】WebSocket是Java Web实时通信的关键技术,提供双向持久连接,实现低延迟、高效率的实时交互。适用于聊天应用、在线游戏、数据监控和即时通知。开发涉及服务器端实现、客户端连接及数据协议定义,注意安全、错误处理、性能和兼容性。随着实时应用需求增加,WebSocket在Java Web开发中的地位将更加重要。
|
15天前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
【4月更文挑战第9天】本文对比了Python三大Web框架Django、Flask和Pyramid。Django功能全面,适合快速开发,但学习曲线较陡;Flask轻量灵活,易于入门,但默认配置简单,需自行添加功能;Pyramid兼顾灵活性和可扩展性,适合不同规模项目,但社区及资源相对较少。选择框架应考虑项目需求和开发者偏好。
|
6天前
|
JSON Java fastjson
Spring Boot 底层级探索系列 04 - Web 开发(2)
Spring Boot 底层级探索系列 04 - Web 开发(2)
15 0
|
6天前
|
安全 编译器 PHP
PHP 8.1版本发布:引领Web开发新潮流
PHP编程语言一直是Web开发的主力军,而最新发布的PHP 8.1版本则为开发者们带来了更多创新和便利。本文将介绍PHP 8.1版本的主要特性,包括更快的性能、新的语言功能和增强的安全性,以及如何利用这些功能来提升Web应用程序的质量和效率。
|
8天前
|
缓存 负载均衡 数据库
优化后端性能:提升Web应用响应速度的关键策略
在当今数字化时代,Web应用的性能对于用户体验至关重要。本文探讨了如何通过优化后端架构和技术手段,提升Web应用的响应速度。从数据库优化、缓存机制到异步处理等多个方面进行了深入分析,并提出了一系列实用的优化策略,以帮助开发者更好地应对日益增长的用户访问量和复杂的业务需求。
12 1
|
8天前
|
缓存 监控 数据库
Flask性能优化:打造高性能Web应用
【4月更文挑战第16天】本文介绍了提升Flask应用性能的七大策略:优化代码逻辑,减少数据库查询,使用WSGI服务器(如Gunicorn、uWSGI),启用缓存(如Flask-Caching),优化数据库操作,采用异步处理与并发(如Celery、Sanic),以及持续监控与调优。通过这些手段,开发者能有效优化Flask应用,适应大型或高并发场景,打造高性能的Web服务。
|
9天前
|
PHP
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
|
9天前
|
数据库 开发者 Python
Python中使用Flask构建简单Web应用的例子
【4月更文挑战第15天】Flask是一个轻量级的Python Web框架,它允许开发者快速搭建Web应用,同时保持代码的简洁和清晰。下面,我们将通过一个简单的例子来展示如何在Python中使用Flask创建一个基本的Web应用。
|
9天前
|
前端开发 数据挖掘 API
使用Python中的Flask框架进行Web应用开发
【4月更文挑战第15天】在Python的Web开发领域,Flask是一个备受欢迎的轻量级Web框架。它简洁、灵活且易于扩展,使得开发者能够快速地构建出高质量的Web应用。本文将深入探讨Flask框架的核心特性、使用方法以及在实际开发中的应用。