From 2fe956b4043d828b53b75b618357c19333b422cb Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 26 Nov 2024 22:11:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...40\345\217\202\347\273\203\344\271\240.md" | 59 ++++++++--- ...\345\236\213(\344\274\240\345\217\202).md" | 99 +++++++++++++++++++ 2 files changed, 146 insertions(+), 12 deletions(-) rename "\347\250\213\346\242\246/20241122_MVC\347\273\203\344\271\240.md" => "\347\250\213\346\242\246/20241122_Linux\347\273\203\344\271\240&MVC\347\273\203\344\271\240&\346\216\247\345\210\266\345\231\250\344\274\240\345\217\202\347\273\203\344\271\240.md" (89%) create mode 100644 "\347\250\213\346\242\246/20241125_Action\350\277\224\345\233\236\345\200\274\347\261\273\345\236\213(\344\274\240\345\217\202).md" diff --git "a/\347\250\213\346\242\246/20241122_MVC\347\273\203\344\271\240.md" "b/\347\250\213\346\242\246/20241122_Linux\347\273\203\344\271\240&MVC\347\273\203\344\271\240&\346\216\247\345\210\266\345\231\250\344\274\240\345\217\202\347\273\203\344\271\240.md" similarity index 89% rename from "\347\250\213\346\242\246/20241122_MVC\347\273\203\344\271\240.md" rename to "\347\250\213\346\242\246/20241122_Linux\347\273\203\344\271\240&MVC\347\273\203\344\271\240&\346\216\247\345\210\266\345\231\250\344\274\240\345\217\202\347\273\203\344\271\240.md" index cc57a1e..aa172b3 100644 --- "a/\347\250\213\346\242\246/20241122_MVC\347\273\203\344\271\240.md" +++ "b/\347\250\213\346\242\246/20241122_Linux\347\273\203\344\271\240&MVC\347\273\203\344\271\240&\346\216\247\345\210\266\345\231\250\344\274\240\345\217\202\347\273\203\344\271\240.md" @@ -124,6 +124,35 @@ public class Blogs:Controller{ } ``` > 12. 在11题的新控制器中,新增一个名为Create的Action,该Action接受一个类型为Students(有姓名、年龄、体长属性)的参数,并展示该参数的姓名属性 +## [显示效果] +![MVC练习12](./MVC练习显示效果/MVC练习-12.PNG) +```js +using Microsoft.AspNetCore.Mvc; +namespace Blog.Controllers; +public class BabyController:Controller{ + public Students Create(int id) + { + var students=new Students + { + Name="小白", + Age="20", + Height = "185" + }; + return students; + } + [HttpPost] + public IActionResult Create([FromBody] Students students){ + return View(students); + } +} + + public class Students +{ + public string Name { get;set;}=null!; + public string Age { get;set;}=null!; + public string Height { get;set;}=null!; +} +``` # 控制器传参练习 > 1. 简单参数传递 在一个叫Blog控制器中,定义一个叫Index的Action,并且传递一个int类型的值,id为变量名 ```js @@ -142,13 +171,15 @@ public class Blogs:Controller{ > 3. 简单参数传递 在一个叫Blog控制器中,定义一个叫Index_3的Action,并且传递一个string类型的值,name为变量名 **注意:**变量名改了得在Program.cs里的` pattern: "{controller=Home}/{action=Index}/{name?}");`修改 ```js - public IActionResult Index_2( string name){ + public IActionResult Index_3( string name){ return Content(id.ToString()); } //html页面中在网址上输入字符串类型的(http://localhost:5000/baby/index_2/fgdgd123)会在页面上显示fgdgd123 ``` > 4. 复杂参数传递 在一个叫Blog的控制器中,定义一个名为Create的Action,并且传递一个BlogCreateDto类型的值,blogCreateDto为变量名; PS: BlogCreateDto类型具有Title、Author、Content自动属性 +## [显示效果] +![控制器传参任务4](./MVC练习显示效果/控制器传参-4.PNG) **在控制器中输入** ```js using Microsoft.AspNetCore.Mvc; @@ -192,6 +223,8 @@ public class BabyController:Controller{ ``` > 5. 复杂参数传递 在一个叫Blog的控制器中,定义一个名为Create_1的Action,并且传递一个Products类型的值,productCreateDto为变量名 PS: Products类型具有Name、Price、Stock自动属性 +## [显示效果] +![控制器传参任务4](./MVC练习显示效果/控制器传参-5.PNG) **在控制器中输入** ```js using Microsoft.AspNetCore.Mvc; @@ -204,9 +237,9 @@ public class BabyController:Controller{ } public IActionResult Index( int id){ var productCreateDto=new Products{ - Name="小黑", - Price="456", - Stock="没有防备,也许就是故事的结尾" + Name="橡皮擦", + Price="2¥", + Stock="200个" }; return View(productCreateDto); } @@ -223,19 +256,21 @@ public class BabyController:Controller{ @model Blog.Controllers.Products; -

@Model.Name

-@Model.Price -@Model.Stock +

商品:@Model.Name

+价格:@Model.Price +库存:@Model.Stock ``` > 6. 复杂参数传递 在一个叫Blog的控制器中,定义一个名为Create_2的Action,并且传递一个Students类型的值,studentCreateDto为变量名 PS: Students类型具有StudentName、Sex、Age自动属性 +## [显示效果] +![控制器传参任务4](./MVC练习显示效果/控制器传参-6.PNG) **在控制器中输入** ```js using Microsoft.AspNetCore.Mvc; @@ -273,7 +308,7 @@ public class BabyController:Controller{ color: orange; } -

@Model.StudentName

-@Model.Sex -@Model.Age +

姓名:@Model.StudentName

+性别:@Model.Sex +年龄:@Model.Age ``` \ No newline at end of file diff --git "a/\347\250\213\346\242\246/20241125_Action\350\277\224\345\233\236\345\200\274\347\261\273\345\236\213(\344\274\240\345\217\202).md" "b/\347\250\213\346\242\246/20241125_Action\350\277\224\345\233\236\345\200\274\347\261\273\345\236\213(\344\274\240\345\217\202).md" new file mode 100644 index 0000000..29413c4 --- /dev/null +++ "b/\347\250\213\346\242\246/20241125_Action\350\277\224\345\233\236\345\200\274\347\261\273\345\236\213(\344\274\240\345\217\202).md" @@ -0,0 +1,99 @@ +@startmindmap +1. HTTP请求 + * get + * post + * put + * delete +2. MVC模式中Action返回值类型 + * 返回常见数据类型:int、string、IList<> + * IActionResult-->(接口),返回响应状态码:200(请求成功,响应正常)、301(重定向)、401、404(资源找不到)、500(服务器错误)等 + - 视图 + - 重定向 + * ActionResult<>-->(类型),可以同时返回状态码或常规数据类型 + * JsonResult,contentResult,返回响应是纯粹的数据 + * PoCo,可以返回一个对象,而这个对象在被返回的时候,会被序列化(相对应的是,反序列化)-->Json{"name":"xxx"} + - 信息-->(序列化)网络-->(反序列化)信息 + - 网络 + - 网线 + - 光纤 + - 网络设备 +@endmindmap + +# 指定视图 +```js +public IActionResult Delete() +{ + return View("Test"); //Test是Views里的Test.cshtml +} +``` +# 重定向(跳转) +```js +public IActionResult Delete() +{ + return RedirectToAction("Index"); //Index.cshtml +} +``` +# dynamic +```js + public dynamic Edit() + { + return new {Id=18}; + } +//返回页面Json显示{"Id":18} +``` +# 定义类型传有参 +```js +//定义类型 + public class BlogCreateDto + { + public string Title{get;set;}=null!; + public string Author{get;set;}=null!; + public string Content{get;set;}=null!; + } +//传值 + public BlogCreateDto Index( int id) + { + var blogCreateDto=new BlogCreateDto + { + Author="小红", + Title="果敢", + Content="人生不就是白干加白干" + }; + return blogCreateDto; + } +//发送请求 + [HttpPost] + public IActionResult Create([FromBody] BlogCreateDto blogCreateDto) + { + return View(blogCreateDto); + } +``` +# ActionResult<>类型传字符串 +```js +public ActionResult Edit(){ + var isOk=1==3?true:false; + if(isOk){ + return View(); + } + else{ + return "156sfsdgfd"; + } +} +``` +# ActionResult<>类型传集合 +```js +public ActionResult > Edit(){ + var isOk=1==3?true:false; + if(isOk){ + return View(); + } + else{ + var list =new List{ + "鸡蛋", + "巧克力", + "草莓酱" + } + return list; + } +} +``` -- Gitee