diff --git "a/\350\224\241\345\234\243\346\201\251/2024.11.25\350\277\224\345\233\236\345\200\274\347\261\273\345\236\213.md" "b/\350\224\241\345\234\243\346\201\251/2024.11.25\350\277\224\345\233\236\345\200\274\347\261\273\345\236\213.md" new file mode 100644 index 0000000000000000000000000000000000000000..6fc302a799a76be8611e254a72a7fe3fc32ae34b --- /dev/null +++ "b/\350\224\241\345\234\243\346\201\251/2024.11.25\350\277\224\345\233\236\345\200\274\347\261\273\345\236\213.md" @@ -0,0 +1,237 @@ +## MVC模式中常见的Action的返回值类型 +1. 常见数据类型,如int、string、IList<> +```cs +public IActionResult Index() +{ + var list = new List + { + new BlogCreateDto + { + Title = "今天下雨", + Author = "今天下雨", + Content = "今天下雨", + }, + new BlogCreateDto + { + Title = "今天下雨", + Author = "今天下雨", + Content = "今天下雨", + }, + new BlogCreateDto + { + Title = "今天下雨", + Author = "今天下雨", + Content = "今天下雨", + }, + }; + return View(); +} + +public class BlogCreateDto +{ + public string Title{get;set;} = null!; + public string Author{get;set;} = null!; + public string Content{get;set;} = null!; +} +``` +```html + +@model List + + + + + + + + + @foreach (var item in @Model) + { + + + + + + + } +
标题作者内容操作
@item.Title@item.Author@item.Content + + +
+``` + +2. IActionResult,响应状态码,如200(请求成功,并返回了)、301、401、404(资源找不到)、500(服务器错误)等 + - 视图:除了访问该视图,还可以访问指定名称的视图 return View("视图名称") + - 重定向:return RedirectToAction("视图名称"); + +3. ActionREsult<>,可以同时返回状态或者常规数据类型 +```cs +public ActionResult Edit() +{ + var isOk = 1 == 3 ? true : false ; + if (isOk) + { + return View(); + } + else + { + return "5432"; + } +} +``` + +4. JsonResult、ContentResult,返回响应,就是纯粹的数据 + +5. POCO,可以返回一个对象,而该对象在被返回的时候会被序列化(相对应的是 反序列化--Json,相当于js的对象) + + +# 作业 +## 基础能力 +### 1 +![20241126221322](sjyniuybm.hn-bkt.clouddn.com/20241126221322.png) +```cs +// 生成一个随机整数,范围[0,100],注意是否包含 +public IActionResult Index() +{ + Random random = new Random(); + // 101是因为Next方法生成的是min到max-1之间的数 + int randomNumber = random.Next(0, 101); + return View(randomNumber); +} +``` + +### 2 +![20241126221433](sjyniuybm.hn-bkt.clouddn.com/20241126221433.png) +```cs +// 生成一个随机整数,范围(0,100],注意是否包含 +public IActionResult Index_2() +{ + Random random = new Random(); + int randomNumber = random.Next(1, 101); + return View(randomNumber); +} +``` + +### 3 +![20241126221451](sjyniuybm.hn-bkt.clouddn.com/20241126221451.png) +```cs +// 生成10个随机整数,范围[5,80],注意是否包含 +public IActionResult Index_3() +{ + Random random = new Random(); + List randomNumbers = new List(); + for (int i = 0; i < 10; i++) + { + int randomNumber = random.Next(5, 81); + randomNumbers.Add(randomNumber); + } + return View(randomNumbers); +} +``` + +### 4 +![20241126221504](sjyniuybm.hn-bkt.clouddn.com/20241126221504.png) +```cs +// 定义一个字符串,字符串中有100个中文字符,需要从中随机取1个字符串 +public IActionResult Index_4() +{ + string str = "的一是在不了有和人这中大为上个国我以要他时来用们生到作地于出就分对成会可主发年动同工也能下过子说产种面而方后多定行学法所民得经十三之进着等部度家电力里如水化高自二理起小物现实加量都两去但事报需必请强置设及度年日识自约就千次么照海统技质六水办除业据期业点权些备员革又员好厂列宁员广听府美质再量方五头深响知万全具上半办八入吗"; + + // 创建Random对象 + Random random = new Random(); + char oneChinese = str[random.Next(str.Length)]; + + return View(oneChinese); +} +``` + +### 5 +![20241126221528](sjyniuybm.hn-bkt.clouddn.com/20241126221528.png) +```cs +//定义一个字符串,字符串中有100个中文字符,需要从中随机取5-50个字符,组成新的字符 +public ActionResult Index_5() +{ + string str = "的一是在不了有和人这中大为上个国我以要他时来用们生到作地于出就分对成会可主发年动同工也能下过子说产种面而方后多定行学法所民得经十三之进着等部度家电力里如水化高自二理起小物现实加量都两去但事报需必请强置设及度年日识自约就千次么照海统技质六水办除业据期业点权些备员革又员好厂列宁员广听府美质再量方五头深响知万全具上半办八入吗"; + Random random = new Random(); + int length = random.Next(5, 51); + // 随机选择字符并组成新的字符串 + string newStr = ""; + for (int i = 0; i < length; i++) + { + int index = random.Next(str.Length); + newStr += str[index]; + } + ViewBag.NewStr = newStr; + + return View(); +} +``` + +### 6 +![20241126221544](sjyniuybm.hn-bkt.clouddn.com/20241126221544.png) +```cs +// 定义2个字符串,第一个字符串中放百家姓,第二个字符串中放中文字符,要求从第一个字符串随机取得一个姓, +// 再从第二个字符串中随机获得1到2个字符组成新字符串,和第一个字符串取得的姓组成一个姓名 +public IActionResult Index_6() +{ + // 定义包含百家姓的字符串 + string names = "赵,钱,孙,李,周,吴,郑,王,冯,陈,褚,卫,蒋,沈,韩,杨,朱,秦,尤,许,何,吕,施,张,孔,曹,严,华,金,魏,陶,姜,戚,谢,邹,喻,柏,水,窦,章,云,苏,潘,葛,奚,范,彭,郎,鲁,韦,昌,马,苗,凤,花,方,俞,任,袁,柳,酆,鲍,史,唐,费,廉,岑,薛,雷,贺,倪,汤,滕,殷,罗,毕,郝,邬,安,常,乐,于,时,傅,皮,卞,齐,康,伍,余,元,卜,顾,孟,平,黄,和,穆,萧,尹,姚,邵,湛,汪,祁"; + // 定义包含中文字符的字符串 + string chineseChars = "一二三四五六七八九十上下左右多少口耳目手足心山水土日月风雨霜雪花草树木鸟兽虫鱼江河湖海金银铜铁丝竹筋角羽齿革羽毛"; + Random random = new Random(); + + // 随机选择一个姓 + // 将字符串分割成姓的列表 + string[] arrNames = names.Split(','); + string surname = arrNames[random.Next(arrNames.Length)]; + // 随机选择1到2个中文字符 + int count = random.Next(1, 3); + string givenName = ""; + for (int i = 0; i < count; i++) + { + int index = random.Next(chineseChars.Length); // 假设每个字符占两个字符 + givenName += chineseChars[index]; + } + // 组成姓名 + string name = surname + givenName; + ViewBag.name = name; + + return View(); +} +``` + + +## 控制器返回值 +### 渲染简单数据到页面 +![20241126221657](sjyniuybm.hn-bkt.clouddn.com/20241126221657.png) +```cs +public int Index() +{ + return 1111; +} +``` + +### 渲染复杂数据到页面 +![20241126221748](sjyniuybm.hn-bkt.clouddn.com/20241126221748.png) +```cs +public dynamic Edit() +{ + return new {Name="张三"}; +} +``` + +### 渲染集合数据到页面 +![20241126221803](sjyniuybm.hn-bkt.clouddn.com/20241126221803.png) +```cs + public dynamic List() +{ + var list = new List + { + "开心", + "激动", + "难过", + "沮丧" + }; + return list; +} +``` \ No newline at end of file