24:NetFramework5

前言

在历史中,.Net分为派系,所以给开发者抬高了门槛儿;
往后:.Net6.Net7
.NET5对于我们开发者来说,其实没啥,因为他换的是底层基础架构;

如何升级

足够平滑,安装好.Net5的环境,直接修改框架版本即可;

C#6

  1. 只读自动属性
  2. using static
  3. Null 条件运算符
  4. 字符串内插
  5. 异常筛选器
  6. nameof 表达式
  7. 使用索引器初始化关联集合

https://docs.microsoft.com/zh-cn/dotnet/csharp/whats-new/csharp-6

C#7

  1. out 变量
  2. 元组
  3. 弃元
  4. 模式匹配
  5. ref 局部变量和返回结果
  6. 本地函数
  7. 更多的 expression-bodied 成员
  8. throw 表达式
  9. 通用的异步返回类型
  10. 数字文本语法改进

https://docs.microsoft.com/zh-cn/dotnet/csharp/whats-new/csharp-7

C#8

  1. Readonly 成员 待处理
  2. 默认接口方法
  3. 模式匹配增强功能:
  4. Using 声明
  5. 静态本地函数
  6. 可处置的 ref 结构
  7. 可为空引用类型
  8. 异步流
  9. 异步可释放
  10. 索引和范围
  11. Null 合并赋值
  12. 非托管构造类型
  13. 嵌套表达式中的 14.Stackalloc
  14. 内插逐字字符串的增强功能

https://docs.microsoft.com/zh-cn/dotnet/csharp/whats-new/csharp-8

C#9

1.记录
2.仅限 Init 的资源库
3.顶级语句
4.模式匹配增强功能
5.本机大小的整数
6.函数指针
7.禁止发出 localsinit 标志
8.目标类型的新表达式
9.静态匿名函数
10.目标类型的条件表达式
11.协变返回类型
12.扩展 GetEnumerator 支持 foreach 循环
13.Lambda 弃元参数
14.本地函数的属性
15.模块初始值设定项
16.分部方法的新功能

https://docs.microsoft.com/zh-cn/dotnet/csharp/whats-new/csharp-9

Cshtml文件

Cshtml文件实则是一个Cs文件,类文件,可以支持前端后端语言的混编;通过Razor语法来实现前后端混编;

Razor语法

Razor 支持 c #,并使用 @ 符号从 HTML 转换为 c #。 Razor 计算 c # 表达式并在 HTML 输出中呈现。
当 @ 符号后跟 Razor 保留关键字时,它会转换为 Razor 特定标记。 否则会转换为纯 C#。

Razor表达式

1.隐式Razor表达式
2.显示Razor表达式
3.表达式编码
4.Razor代码块
5.本地函数声明
6.隐式转换
7.带分隔符的显式转换
8.显式行转换

Razor语法分支结构

@if, else if, else, and @switch

Razor组件

  1. Razor组件对应的类需要以ViewComponent结尾
  2. 继承ViewComponent类
  3. 定义一个异步版本的InvokeAsync 可以自定义参数
  4. InvokeAsync就是返回组件内容的方法
  5. 在Views文件夹下的Shard文件夹下建立Components 文件夹,再Conponents下创建一个和组件类名称相同的文件夹
  6. 创建视图
  7. @await Component.InvokeAsync(“List”, new { maxPriority = 123, isDone = false })调用组件
    [ViewComponent(Name ="List")]
    public class CustomListViewComponent: ViewComponent
    {
        public async Task<IViewComponentResult> InvokeAsync(int maxPriority, bool isDone)
        {
            var items = await GetItemsAsync(maxPriority, isDone); //获取
            return View("Richard", items);
        }

        private Task<List<TodoItem>> GetItemsAsync(int maxPriority, bool isDone)
        {
            return Task.Run<List<TodoItem>>(() =>
            {

                return new List<TodoItem>()
                {
                      new TodoItem(){
                            Id=123
                      },
                      new TodoItem(){
                            Id=123
                      },
                      new TodoItem(){
                            Id=123
                      },
                      new TodoItem(){
                            Id=123
                      }
                };
            });
        }
    }

引用

PartialPage

@await Html.PartialAsync("PartialPage", "这里是Html.Partial")
  • 加载另一个页面的数据进行显示。
    在这里插入图片描述

后台接收数据

        /// <summary>
        /// 接受页面提交的数据
        /// </summary>
        /// <returns></returns>
        //[HttpPost] //只能是Post请求
        [ValidateAntiForgeryToken] //验证当前页面上的Token是否符合
        [AcceptVerbs("Post")]
        public IActionResult Create([Bind("CategoryId",  "Price", "Url", "ImageUrl")] JDCommodity commodity)
        {
            if (ModelState.IsValid) //支持实体验证---是验证是如何验证的?
            {
                {
                    //正常添加数据
                }
                return RedirectToAction("Query");//返回Query界面
            }
            else
            {
                ViewBag.categoryList = BuildCategoryList();
                return View(commodity);		//返回Create界面
            }
        } 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值