欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MVC(1)——新建一个ASP.NET MVC项目

程序员文章站 2022-04-02 18:09:24
...

一、新建一个空MVC项目
  对于mvc的应用,我想第一步就应该是建立一个mvc项目了。废话不说了,直接上。
  在“File(文件)”菜单中选择“New(新建)”——“Project(项目)”
MVC(1)——新建一个ASP.NET MVC项目
  打开“NewProject(新项目)”对话框。如果在左侧”VisualC#”目录树中选择”Web”模板,会看到”ASP.NETWebApplication(ASP.NETWeb应用程序)”项目模板。选择该项目类型。将该新项目的名称设置为Partylnvites,单击“OK(确定)”按钮并继续,此时会看到另一个对话框。
MVC(1)——新建一个ASP.NET MVC项目
  
  新建后,项目结构如下:
MVC(1)——新建一个ASP.NET MVC项目

现在,通过选择”Debug(调试)”菜单中的”Start Debugging(开始调试)”(或简单地按快捷键F5)便可以试着运行这个应用程序。这时将会看到如下图所示的结果——404报错。
MVC(1)——新建一个ASP.NET MVC项目
  这是由于本例是从Empty项目模板开始的,该应用程序尚未包含任何可以运行的内容(没有程序入口,类似于没有主函数main),因此服务器会产生一个“404一未找到”的错误。

此时,我们停止调试,在”Debug(调试)”菜单上选择“stopDebugging(停止调试)”(或简单地按快捷键Shift+F5)。

二、新建一个控制器
首先介绍以下我们的控制器
在MVC体系架构中,输入请求是由控制器(Controller)来处理的。
在 MVC中,控制器只是一些C#类(通常继承于System.Web.Mvc.Controller,这是框架内置的控制器基类)。控制器中的每一个public方法都称为是一个动作方法(ActionMethod),意即可以用某个URL通过Web来调用它,以执行一个动作。MVC约定,将控制器放在Controllers的文件夹中,这是VisualStudio在建立项目时创建的。
MVC 将 URL 映射到方法。这些方法在类中被称为"控制器"。
控制器负责处理进入的请求,处理输入,保存数据,并把响应发送回客户端。
总而言之,Controller就是程序的处理逻辑,控制着屏幕调用显示哪些东西,什么时候去显示什么的逻辑。(只是一个控制逻辑而非实际显示的东西)。

为了对项目添加一个控制器,右击VisualStudio“SolutionExplorer(解决方案资源管理器)”窗口中的”Controllers”文件夹,并从弹出菜单中选择”Add(添加)”——”Controller(控制器)”,然后弹出如下窗体:
MVC(1)——新建一个ASP.NET MVC项目
  当”AddScaffold(添加基架)”对话框出现后,选择”MVC5Controller-Empty(MVC5-空控制器)”选项,然后单击”Add(添加)”按钮。弹出“添加控制器”窗体
MVC(1)——新建一个ASP.NET MVC项目
  将其名称设置“HomeController”(注:用其他名字是不可以的,原因会在MVC(2)中提到), 然后单击“Add(添加)”按钮。
控制器名称有几个约定:提供的控制器名称应当指明其目的;默认的控制器名称称为“Home”:控制器名称具有”Controller”后缀。

添加完后的HomeController.cs代码如下:
MVC(1)——新建一个ASP.NET MVC项目
要说明的是HomeController相当于MVC程序的入口类,而其中的Index方法就相当于MVC程序的主函数。也就是说我们的程序有了入口了。
但是Index的代码是返回一个View,而我们Views文件夹下HomeController对应的Home文件夹为空
MVC(1)——新建一个ASP.NET MVC项目
所以……

MVC(1)——新建一个ASP.NET MVC项目

那么解决办法有两个,一个是改控制器的代码,让主函数Index不返回View了;另一个是在Views文件夹下的Home文件夹(和HomeController对应,系统生成的)添加一个View

先说第一种:
将HomeController.cs的代码改成:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace WebApplication1.Controllers
{
    public class HomeController : Controller
    {
        // GET: Home
        public String Index()
        {
            return "Hello world";
        }
    }
}

让主函数Index返回一个字符串“Hello World”,运行以下结构如图
MVC(1)——新建一个ASP.NET MVC项目

第二种方法:添加一个View让Index方法return View();可以找到
PS:把方法一的代码更改先撤销掉

三、View(视图)
在这我介绍以下我们的View文件夹:
Views 文件夹存储的是与应用程序显示(用户界面)相关的文件(HTML 文件)。根据所采用的语言内容,这些文件可能扩展名可能是 html、asp、aspx、cshtml 和 vbhtml。
Views 文件夹中包含每个控制器对应的一个文件夹。
ASP.NET 文件类型
在 Views 文件夹中可以看到以下 HTML 文件类型:

文件类型 扩展名
纯 HTML htm or .html
经典 ASP .asp
经典 ASP.NET .aspx
ASP.NET Razor C# .cshtml
ASP.NET Razor VB .vbhtml

总而言之,View就是我们用户通过浏览器看到的东西
之后我会提到Controller和这个View的关系,

这里先创建一个View给HomeController

右键单击Views文件夹下的Home文件夹,“添加”-》“新建项”,弹出“添加新项”对话框
MVC(1)——新建一个ASP.NET MVC项目
这里我们选MVC 5 视图页(Razor),名称改为Index表示是HomeController控制器中的Index方法调用的视图,单击“添加”
生成的Index.cshtml文件如图:
MVC(1)——新建一个ASP.NET MVC项目
由于这个Index.cshtml没有内容,所以我们运行后虽然可以显示界面了,但界面是空白的。(有兴趣的话可以自己尝试一下)

现在我们给这个Index.cshtml视图添加东西,把内容替换成如下代码:

@{ViewBag.Title = "Home Page";}

<h1>Welcome to runoob.com</h1>

<p>Put Home Page content here</p>

添加了一个h1标题和一段话做为内容,那个@{ViewBag.Title = “Home Page”;}是给我们的index.cshtml起一个标签名
MVC(1)——新建一个ASP.NET MVC项目

最后的最后,总结以下我们学会了Controller,知道了它可以调用指定的视图,显示在浏览器上,HomeController是程序入口,Index方法是主函数。也学习了View,知道这个文件是网页的外观,会被控制调用显示在浏览器上。
那么给大家放张图
MVC(1)——新建一个ASP.NET MVC项目
我们了解了MVC中的两个了,对于Model我会在之后的文章中提到,这里我们只要知道当没有数据库的存取操作时没有model也是可以的。