奕玖科技 > 新闻中心 > 技术文章

asp.net core自学第六天:学习mvc

来源: 奕玖科技 fly | 2022/8/4 15:53:34

今天我们可以正式的进入mvc了啊!首先说明一下什么是mvc,mvc是一种前后端分离的框架。他分为3层Controllers Models Views

Controllers

控制器或则叫控制层,举一个例子 http://localhost/news/ 里面的路由news展现什么内容就是在控制层里进行控制的。

Models

Models是数据模型层,比如我们一篇文章有标题,发布时间,发布人,发布内容。那么我们就制作一个模型储存在models里示例如下

["article":{"title":"我是标题","username":"我是发布人","content":"我是文章内容"}]

模型就是定义好数据类型,然后保存在分配给Controllers进行操作,在c#里的数据模型示例如下

定义了一个Article的类,类下面的成员 id title content都一一对应数据库表 Article里的字段。这个就是一个数据模型。

Views

视图层,就是展现给用户的界面,在C#里使用的是Razor视图。示例Index.cshtml 其实跟普通的html也没啥区别,只是可以嵌入用控制器传递过来的数据,或则直接使用c#添加一些其他功能而已。

整个执行流程大概是这样子的,Controllers将获取到的数据,例如来自views或则Models模型的数据或则其他自定义的数据返回给前端。

上面3个介绍完成后,我们可以正式的引入mvc来制作一个基本的项目了,首先在昨天介绍的案例项目里建立3个文件夹Controllers Models Views。最后在添加一个wwwroot文件夹,这个文件夹是用来储存静态文件的。比如图片 js文件 css样式表,html文件等。它的位置位于网站的根目录。最终项目组成文件如下

Controllers文件夹设置

Controllers里,我们添加一个名为HomeController.cs的类,代码如下

using Microsoft.AspNetCore.Mvc;//引入mvc
namespace WebApplication4.Controllers
{
    public class HomeController : Controller //把HomeController的信息注入到 mvc.Controller,
    {
        public HomeController() //构造函数
        {
        }
        [Route("")] //设置路由 这里设置为网站的根目录
        public IActionResult Index() //返回IActionResult数据
        {
            return View(); //返回视图,因为为空所以默认是views里的index.cshtml
        }
    }
}

Controllers有自己的取名规则。比如上诉我们为什么要取名为HomeController这里说明一下 Home代表的是控制器名称,Controller代表的是控制器。Controllers里的类都是 名称 + 控制器 这样取名的。所以我们就必须取名为HomeController,HomeController下面的函数比如index 基本上就算做路由名了。

示例如下 HomeController里的函数 Test(int id)

用网址表示上面的规则就是http://localhost/Home/Test/3/ 最后面的3代表的是参数 int id。当然我们也可以自定义路由规则。需要这样

[Route("/Test/{id?}")] //这里重写了路由规则
public IActionResult Test(int id) //返回IActionResult数据
{
    return View("index"); //返回视图 index.cshtml
}

最后可以通过网址http://localhost/Test/3/ 来访问了

Views文件夹设置

上面的示例代码return View()是用来把视图输送到前端的。如果是默认的视图就可以使用View(),如果不默认的话可以这样View("test.cshtml")。默认视图的名字为函数名称 Index()就是index.cshtml,如果是Test()那么就是Test.cshtml。所以我们需要在Views文件夹里添加视图,创建一个index.cshtml就可以了啊。

Startup.cs设置

设置好Controllers 和views文件夹后,我们还需要设置Startup.cs文件,需要设置ConfigureServices(IServiceCollection services)和Configure(IApplicationBuilder app, IWebHostEnvironment env)两处

ConfigureServices函数添加如下代码

services.AddMvc();注册Mvc。必须添加。否则无法使用mvc

Configure函数添加如下代码

app.UseStaticFiles();//静态文件的支持
app.UseRouting();
app.UseEndpoints(endpoints =>
{
    endpoints.MapControllerRoute(//设置路由规则
        name: "default",
        pattern: "{controller=Home}/{action=Index}");
});

因为此处设置了默认路由规则,所以views要新建一个Home文件夹,并且把index.cshtml移动到此处.最终效果如下

通过点击箭头的“在浏览器中查看”我们就可以成功的在前端显示index.cshtml了。

最后总结

至此我们整个asp.net core mvc 项目算是完成了,大道至简,在复杂的mvc项目,大致也跟上面的是一样的。我们只需要理解好Controllers Models Views 这3个层面的原理相信掌握MVC是一件很容易的事情。比如上诉的功能我们可以脑补一下,就是通过Controllers 里的HomeController 函数 Index 来抓取视图/views/home/index.cshtml里的数据。然后返回给前端。就是这样一个流程。

栏目导航
相关文章
文章标签
关于我们
公司简介
企业文化
资质荣誉
服务项目
高端网站定制
微信小程序开发
SEO排名推广
新闻动态
行业新闻
技术学院
常见问题
联系我们
联系我们
人才招聘
联系方式
Q Q:24722
微信:24722
电话:13207941926
地址:江西省抚州市赣东大道融旺国际3栋
Copyright©2008-2022 抚州市奕玖科技有限公司 备案号:赣ICP备2022010182号-1