.Net6结构解析和传值方式

 

环境: .NET6

开发工具: Vs2022

 

创建web项目

 

 

此时我们可以通过VS的运行直接访问网站

 

 

层级解读

服务引用,在如下图菜单中添加各种服务

 

 

 

 

配置启动项

这里是用来配置 通过IIS  或者命令行、iis express启动时的端口,ip地址

 

 

wwwroot下是用来存放静态文件、js文件的

 依赖项 用来管理Nuget程序包以及添加一些依赖项的

MVC的控制器、模型、视图

Appsettings 配置项,.net core后配置文件由原先的.config 改成了json文件

Program 新语法的产出(顶级语法),在此之前控制台应用代码里必须有个main方法,但是在.net 6里则没有,可以直接写代码,要使用的一些注册信息也是写在这里

 

 

  数据传值的多种方式

  1. Session 传值

     后台:  HttpContext.Session.SetString("tempName","妮妮");

     前端:  @Context.Session.GetString("tempName")

  此时我们如果直接运行程序会报错,提示Session未注册,因为在APS.NET CORE的设计核心里就是最小化设计,需要的服务再进行注册,实现最小化设计理念

服务注册的方式:

   Program.cs文件里添加

builder.Services.AddSession();

app.UseSession();

 

2其他类型传值

  这里和传统的MVC传值的方式是一致的,需要注意的是在retuern view()写返回值的时候,要是object,如果使用string类型,会导致查找的视图

ViewBag  

dynamic传值,可以随便属性访问,运行时检测

后台赋值:ViewBag.TestProp = "Tenk";

前台取值:@ViewBag.TestProp

 

ViewData

字典传值

后台赋值:ViewData["TestProp"] = "cx";

前台取值:@ViewData["TestProp"];

 

Model

适合复杂数据的传递,强类型

后台赋值:

    private List<CurrentUser> _UserList = new List<CurrentUser>()

        {

          new CurrentUser()

              {

                 Id=1,

                 Name="Z",

                 Account="Administrator",

                 Email="177@qq.com",

                 LoginTime=DateTime.Now,

                 Password="123456"

            }

      }

 

ViewData["CurrentUserViewData"] = this._UserList[0];

前台取值:

  @model CurrentUser//需要引用传递模型的命名空间

@{

    ViewBag.Title = "Index";

    CurrentUser userData = (CurrentUser)ViewData["CurrentUserViewData"];

}

通过 @userData.属性,可以获取到传递过来的模型里所有的属性

 

 

TempData

临时数据,可以跨action后台传递,存在session里面,用一次就清理掉。

 后台赋值:TempData["TestProp"] = "Spider";//独立存储

前台取值:@TempData["TestProp"]

 

posted @ 2023-02-07 20:36  唐什么来着  阅读(413)  评论(0编辑  收藏  举报