一、VS2017在创建视图时只有.cshtml文件没有.aspx文件
VS 2015以后,微软取消了aspx引擎,创建视图的时候默认使用Razor引擎。若想使用aspx引擎创建视图,可以选择手动创建aspx文件,但不知道为什么直接创建aspx文件会出现各种各样的问题,所以直接更换到VS 2015以前的版本会是个更好的主意。
二、创建一个简单的视图
- 创建Model:【可选】右击Models文件夹新建相应的实体类和Service类(如果有的话)
- 创建Controller:右击Controllers文件夹创建实体类对应的控制器类,该类名必定以Controller做结尾。创建好后,VS会自动在Views文件夹中生成对应名称的视图文件夹
- 创建View:在Views中找到新生成的文件夹(如果你的控制器叫“DemoController”,那么Views中应该会有一个叫“Demo”的文件夹),右击该文件夹新建视图。如果是VS 2015及以上版本,新建的视图必然是一个.cshtml文件,如果不是,则可以选择是使用Razor引擎还ASPX引擎创建视图。
- 修改RouteConfig(将新页面设置为起始页):打开RouteConfig.cs文件,将default中controller的属性值修改为你刚创建的控制器的名称(比如“DemoController”的名称就叫“Demo”),action属性表示控制器要调用的方法,在这里我们有两种修改方式。其一是直接调用默认的index方法,这需要我们将index方法中view方法的属性值改为对应页面的名称;其二是在Controller文件中创建以新页面的名称命名的方法,这时需要我们将action的属性值修改为对应方法的名称。
直接调用index方法(注意参数里的名称不加文件后缀):
创建新的同名方法:
修改路由配置文件里的内容是为了设置起始页,如果新添加的视图不是起始页面,可以选择跳过这一步。在这里我们可以看到的是,一个正常的MVC框架下要创建一个页面需要以上四个步骤,通过Models控制逻辑和实体,用控制器处理交互,用视图来呈现结果。
三、关于设置起始页导致404的问题
在我们右键选择视图里的页面的时候,我们可以发现菜单里有一个名为“设为起始页”的选项。在其他ASP .NET项目中,为文件选择这一项后,我们打开项目时就会默认先显示该页面,但不知道为什么在MVC项目中将视图设置为起始页后会出现404找不到文件的问题。解决方法很简单,右键web项目选择属性,在“web”选项卡的启动操作中选择“当前页面”并保存即可。