diff --git "a/\344\275\231\344\270\275/20241125-\347\254\224\350\256\260.md" "b/\344\275\231\344\270\275/20241125-\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..5f85e24502e7d418e40707fa002308f193b34768 --- /dev/null +++ "b/\344\275\231\344\270\275/20241125-\347\254\224\350\256\260.md" @@ -0,0 +1,24 @@ +## 控制器 +在Web开发中,控制器(Controller)是处理用户请求并返回响应的核心组件。控制器参数传递是指在控制器之间或控制器与视图之间传递数据的过程。以下是对Web控制器参数传递的详细解释: + +### 一、控制器参数传递的基本概念 +控制器参数传递是指在Web应用程序中,通过控制器来接收和处理来自用户或其他组件的数据,并将处理结果返回给客户端或下一个控制器。参数传递可以发生在控制器之间,也可以发生在控制器与视图之间。 + +### 二、控制器参数传递的方式 +### 通过URL传递参数: + +1.在GET请求中,参数通常通过URL的查询字符串(Query String)来传递。例如,http://example.com/controller/action?param1=value1¶m2=value2。 + +2.在控制器中,可以通过方法参数来接收这些参数,通常使用@RequestParam注解来标记参数。 + +## 通过表单传递参数: + +1.在POST请求中,参数通常通过HTML表单来传递。表单数据被封装在HTTP请求体中,并发送到服务器。 + +2.控制器可以通过方法参数来接收表单数据,通常使用与表单字段对应的Java对象或@ModelAttribute注解来接收。 + +## 通过Session传递参数: + +Session是一种在服务器端存储用户会话信息的机制。它可以在多个请求之间保持数据的一致性。 + +控制器可以将数据存储在Session中,并在后续请求中通过Session来访问这些数据。 \ No newline at end of file diff --git "a/\344\275\231\344\270\275/20241127-\347\254\224\350\256\260.md" "b/\344\275\231\344\270\275/20241127-\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..b8b3c019dacaeea38d34e451749dc088b9b4745c --- /dev/null +++ "b/\344\275\231\344\270\275/20241127-\347\254\224\350\256\260.md" @@ -0,0 +1,20 @@ +## 关于Action的返回值 +1.基础数据类型,如int、string、List<>等等 +2.IActionReslt,返回响应的状态码 +* 视图 +* 重定向 +3.ActionResult,是前面2个的结合体,意思为既可以返回基础数据类型,也可以返回响应状态 +4.内容响应:JsonResult、ContentResult +5.POCO(比较老的类型对象) +## 视图 +1.Razor 专业说法 模版引擎 + +* 大部分时候,我们都是通过View函数,传入数据(ViewModel)给视图,这样一来,视图中就可以通过@Model这个属性来取得这些数据 +实际上,我们可以通过声明视图模型的类型,来获得自动提示或者自动感知 +在视图上显示数据的几个玩法 + +* 在视图上定义简单数据,在视图上显示(在视图上定义对象数据,在视图上定义集合数据,显示的问题) +后端传回来对象数据,在视图上显示 +在后端传回来集合数据,在视图上显示 +## 一、Web应用视图概述 +Web应用视图是指Web应用程序中用户可视的层面,它是Web开发中非常重要的一部分。通过Web视图,可以向用户呈现各种动态内容,包括文字、图片、动画、表单等,同时也可以将数据从服务器传递到客户端,实现无需刷新页面就能获得最新数据的效果。 \ No newline at end of file diff --git "a/\344\275\231\344\270\275/20241128-\347\254\224\350\256\260.md" "b/\344\275\231\344\270\275/20241128-\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..65ed9ef7fc4c792485bee387a604475dbc535184 --- /dev/null +++ "b/\344\275\231\344\270\275/20241128-\347\254\224\350\256\260.md" @@ -0,0 +1,43 @@ +定义2个字符串,第一个字符串中放百家姓,第二个字符串中放中文字符,要求从第一个字符串随机取得一个姓,再从第二个字符串中随机获得1到2个字符组成新字符串,和第一个字符串取得的姓组成一个姓名 + +using Microsoft.AspNetCore.Mvc; + +namespace Blog.Controllers; public class SixController:Controller { public IActionResult Index() { var n=Surname()+He(); return Content(n.ToString()); } public string Surname() { var str="李王张刘陈杨赵黄周吴徐孙马朱胡郭何高林罗郑梁谢宋唐许韩冯邓曹彭曾萧田董袁潘于蒋蔡余杜叶程苏魏吕丁沈任"; var r=new Random(); var xing=r.Next(0,str.Length); var x=str[xing]; return x.ToString(); } public string Name() { var str="伟芳娜静敏杰强丽勇艳军洋婷明秀波红梅刚欣磊艳斌桂兰波军娟涛明燕飞玲华云东雪龙琴荣峰蕾刚静涛英丽强莉峰"; var r=new Random(); var z=r.Next(0,str.Length); var p=str[z]; return p.ToString(); } public string He() { var s=""; var r=new Random(); var w=r.Next(1,3); for (int i = 0; i < w; i++) { s=s+Name(); } return s; } + +} 利用以上方法,随机生成100个BlogCreateDto类型(有Title、Author、Content属性)的对象,其中的内容都是随机生成且长度不定,并将其渲染到视图 + +using Microsoft.AspNetCore.Mvc; using Blog.Models; using System.Text; namespace Blog.Controllers; public class SevenController:Controller { public IActionResult Index() { List blogs=Create(); return View(blogs); } private List Create() { List blogs= new List(); Random r =new Random(); for(int i=0;i<100;i++) { string title=Pi(r,5,20); string author=$"Author_{i+1}"; string content=Pi(r,100,200); + + blogs.Add(new BlogCreateDto + { + Title=title, + Author=author, + Content=content + }); + + } + return blogs; +} + + + private string Pi(Random random, int min, int max) +{ + const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + StringBuilder builder = new StringBuilder(); + int length = random.Next(min, max + 1); + + for (int i = 0; i < length; i++) + { + int index = random.Next(chars.Length); + builder.Append(chars[index]); + } + + return builder.ToString(); +} +} + +namespace Blog.Models; + +public class BlogCreateDto { public string Title{get;set;}=null!; public string Author{get;set;}=null!; public string Content{get;set;}=null!; + +} \ No newline at end of file