diff --git "a/\351\203\221\347\242\247\344\273\231/2024-11-27\346\270\262\346\237\223\346\225\260\346\215\256\345\210\260\350\247\206\345\233\276.md" "b/\351\203\221\347\242\247\344\273\231/2024-11-27\346\270\262\346\237\223\346\225\260\346\215\256\345\210\260\350\247\206\345\233\276.md" new file mode 100644 index 0000000000000000000000000000000000000000..ed8d682b71a500447a2d5ce1002f86d0409f2d01 --- /dev/null +++ "b/\351\203\221\347\242\247\344\273\231/2024-11-27\346\270\262\346\237\223\346\225\260\346\215\256\345\210\260\350\247\206\345\233\276.md" @@ -0,0 +1,147 @@ +## Razor 语法 +Razor 支持 C#,并使用 @ 符号从 HTML 转换为 C#。 +隐式 Razor 表达式 + 以 @ 开头,后跟 C# 代码: +```cshtml +

@DateTime.Now

+

@DateTime.IsLeapYear(2016)

+``` +隐式表达式不能包含`空格`,但 C# await 关键字除外。 如果该 C# 语句具有明确的结束标记,则可以混用空格: + +```CSHTML +

@await DoSomething("hello", "world")

+``` + +隐式表达式不能包含 C# 泛型,因为括号 (<>) 内的字符会被解释为 HTML 标记。 以下代码无效: + +```CSHTML +

@GenericMethod()

+``` +上述代码生成与以下错误之一类似的编译器错误: + 1. "int" 元素未结束。 所有元素都必须自结束或具有匹配的结束标记。 + 2. 无法将方法组 "GenericMethod" 转换为非委托类型 "object"。 是否希望调用此方法?` + 3. 泛型方法调用必须包装在显式 Razor 表达式或 Razor 代码块中。 + +显式 Razor 表达式 + 由 @ 符号和平衡圆括号组成。 若要呈现上一周的时间,可使用以下 Razor 标记: + +```CSHTML +

Last week this time: @(DateTime.Now - TimeSpan.FromDays(7))

+``` +Razor 代码块 + 以 @ 开始,并括在 {} 中。 代码块内的 C# 代码不会呈现,这点与表达式不同。 一个视图中的代码块和表达式共享相同的作用域并按顺序进行定义: + +```CSHTML +@{ + var quote = "The future depends on what you do today. - Mahatma Gandhi"; +} + +

@quote

+ +@{ + quote = "Hate cannot drive out hate, only love can do that. - Martin Luther King, Jr."; +} + +

@quote

+``` +## 定位点标记帮助程序 + 可通过添加新属性来增强标准的 HTML 定位点 () 标记。 按照约定,属性名称将使用前缀 asp-。 asp- 属性的值决定呈现的定位点元素的 href 属性值。 +### asp-controller + asp-controller 属性可分配用于生成 URL 的控制器。 下面的标记列出了所有发言人: + +```CSHTML +All Speakers +``` +### asp-action + +asp-action 属性值表示生成的 href 属性中包含的控制器操作名称。 下面的标记可将生成的 href 属性值设置为发言人评估页: + +```CSHTML + +Speaker Evaluations +``` +### asp-route-{value} +asp-route-{value} 属性可实现通配符路由前缀。 占用 {value} 占位符的所有值都解释为潜在的路由参数。 如果找不到默认路由,则将此路由前缀作为请求参数和值追加到生成的 href 属性。 否则,将在路由模板中替换它 +## 重要代码 +``` + // 1.渲染简单数据类型到视图 + public string Create(){ + return "牛马"; + } + + + // 2. 渲染对象数据到视图 + public IActionResult Index_2(){ + var student=new Ba.Models.Student{ + Name="可可", + Age=22, + Sex="女" + }; + return View(student); + } + // 3.渲染(展示)集合数据到视图 + public IActionResult Index_4(){ + var list=new List{ + "偶偶", + "33", + "女" + }; + return View(list); + } + // 4. 渲染(展示)包含集合数据的对象数据到视图 + public IActionResult Index_3(){ + var list=new List{ + new Student{ + Name="苏苏", + Age=12, + Sex="女" + }, + new Student{ + Name="零零", + Age=18, + Sex="女" + }, + }; + + return View(list); + } + public IActionResult Index_5(){ + var list=new List{ + new Create{ + Id=1, + Title="333", + Content="9999", + Auth="苏苏" + + }, + new Create{ + Id=2, + Title="555", + Content="9999", + Auth="苏苏" + }, + new Create{ + Id=3, + Title="366", + Content="9339", + Auth="天天" + }, + new Create{ + Id=4, + Title="322", + Content="944", + Auth="可可" + }, + }; + + return View(list); + } +``` +### 效果图 +[简单](http://zhengmuyun.cn/简单.png) +[对象](http://zhengmuyun.cn/对象.png) +[集合对象](http://zhengmuyun.cn/集合对象.png) +[集合](http://zhengmuyun.cn/集合.png) +[经典CRUD列表](http://zhengmuyun.cn/经典CRUD列表.png) \ No newline at end of file diff --git "a/\351\203\221\347\242\247\344\273\231/2024-11-29\345\210\227\350\241\250\346\267\273\345\212\240.md" "b/\351\203\221\347\242\247\344\273\231/2024-11-29\345\210\227\350\241\250\346\267\273\345\212\240.md" new file mode 100644 index 0000000000000000000000000000000000000000..693cdc5cc91f736c49e6741613e8915756367cbb --- /dev/null +++ "b/\351\203\221\347\242\247\344\273\231/2024-11-29\345\210\227\350\241\250\346\267\273\345\212\240.md" @@ -0,0 +1,53 @@ +## 定义一个模型,充当数据库 +``` +//创建一个静态类 +public static class Two{ + // public static List Student {get;set;}=new List (); + + //声明一个静态属性,List为类型 + public static List Student {get;set;} + // 构建静态函数,只执行一次 + static Two(){ + //初始化静态属性 + Student=new List(); + //给这个集合属性添加一些Student + for (int i = 0; i < 6; i++) + { + var s=new Student{ + Id=i+1, + Name="速速", + Age=23, + Sex="男", + }; + Student.Add(s); + } + } +} +``` +## 添加操作 +``` +@* 添加 *@ +@model Baby2.Models.Student; + +
+
+
+
+ +
+``` +## 使用post请求 +``` + //使用post请求 + [HttpPost] + public IActionResult Index_2(Student input){ + //获取最大的Id + var maxId=Two.Student.Select(t=>t.Id).Max(); + //在该基础上加1 + input.Id=maxId+1; + //将内容添加到表单中 + Two.Student.Add(input); + //内容添加好后重新定向到主页面 + return RedirectToAction("index_1"); + } +```