今天试着用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

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

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

VS 2017开发ASP.NET Core Web应用过程中发现的一个重大Bug的更多相关文章

  1. 从ASP.Net Core Web Api模板中移除MVC Razor依赖项

    前言 :本篇文章,我将会介绍如何在不包括MVC / Razor功能和包的情况下,添加最少的依赖项到ASP.NET Core Web API项目中. 一.MVC   VS WebApi (1)在ASP. ...

  2. 如何在ASP.NET Core Web API测试中使用Postman

    使用Postman进行手动测试 如果您是开发人员,测试人员或管理人员,则在构建和使用应用程序时,有时了解各种API方法可能是一个挑战. 使用带有.NET Core的Postman为您的Web API生 ...

  3. ASP.NET Core Web API 集成测试中使用 Bearer Token

    在 ASP.NET Core Web API 集成测试一文中, 我介绍了ASP.NET Core Web API的集成测试. 在那里我使用了测试专用的Startup类, 里面的配置和开发时有一些区别, ...

  4. C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志

    C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩, ...

  5. [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了

    [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 本文首发自:博客园 文章地址: https://www.cnblogs.com/yilezhu/p/ ...

  6. List多个字段标识过滤 IIS发布.net core mvc web站点 ASP.NET Core 实战:构建带有版本控制的 API 接口 ASP.NET Core 实战:使用 ASP.NET Core Web API 和 Vue.js 搭建前后端分离项目 Using AutoFac

    List多个字段标识过滤 class Program{  public static void Main(string[] args) { List<T> list = new List& ...

  7. ASP.NET Core Web API 索引 (更新Identity Server 4 视频教程)

    GraphQL 使用ASP.NET Core开发GraphQL服务器 -- 预备知识(上) 使用ASP.NET Core开发GraphQL服务器 -- 预备知识(下) [视频] 使用ASP.NET C ...

  8. Asp.Net Core Web Api图片上传(一)集成MongoDB存储实例教程

    Asp.Net Core Web Api图片上传及MongoDB存储实例教程(一) 图片或者文件上传相信大家在开发中应该都会用到吧,有的时候还要对图片生成缩略图.那么如何在Asp.Net Core W ...

  9. 使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(十)-- 发布(Windows)

    本篇将在这个系列演示的例子上继续记录Asp.Net Core在Windows上发布的过程. Asp.Net Core在Windows上可以采用两种运行方式.一种是自托管运行,另一种是发布到IIS托管运 ...

随机推荐

  1. Android Studio JNI开发入门教程

    Android Studio JNI开发入门教程 2016-08-29 14:38 3269人阅读 评论(0) 收藏 举报  分类: JNI(3)    目录(?)[+]   概述 在Andorid ...

  2. Java回调机制解读

    模块间调用 在一个应用系统中,无论使用何种语言开发,必然存在模块之间的调用,调用的方式分为几种: (1)同步调用 同步调用是最基本并且最简单的一种调用方式,类A的方法a()调用类B的方法b(),一直等 ...

  3. Zookeeper + Kafka 集群搭建

    第一步:准备 1. 操作系统 CentOS-7-x86_64-Everything-1511 2. 安装包 kafka_2.12-0.10.2.0.tgz zookeeper-3.4.9.tar.gz ...

  4. bash之重定向

                                                                          标准输入 stdin:代码为0,使用< 或 <& ...

  5. java 线程中断机制

    上一篇文章我们了解过了java有关线程的基本概念,有线程的属性,线程可能处于的状态,还有线程的两种创建的方式,最后还说了一个关键字synchronized,解决了高并发导致数据内容不一致问题,本篇文章 ...

  6. 强化学习读书笔记 - 06~07 - 时序差分学习(Temporal-Difference Learning)

    强化学习读书笔记 - 06~07 - 时序差分学习(Temporal-Difference Learning) 学习笔记: Reinforcement Learning: An Introductio ...

  7. 1179: [Apio2009]Atm

    1179: [Apio2009]Atm Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 1629  Solved: 615[Submit][Status ...

  8. Golang版protobuf编译

    官方网址: https://developers.google.com/protocol-buffers/ (需要FQ) 代码仓库: https://github.com/google/protobu ...

  9. YIi2 Pjax简单使用

    1.点击事件需要在Pjax::begin() 和Pjax::end()范围内 2.需要在链接配置数组后加上  ['data-pjax'=>'#testPjax'] 其中,'#testPjax‘是 ...

  10. install g++ on windows

    install c++/g++ on windows     install c++/g++ on windows link 原文 1. 算是提示吧: Pick the drive and a fol ...