diff --git "a/\346\226\271\345\256\207\350\210\252/20241125\347\254\224\350\256\260\357\274\210\350\277\224\345\233\236\345\200\274\357\274\211.md" "b/\346\226\271\345\256\207\350\210\252/20241125\347\254\224\350\256\260\357\274\210\350\277\224\345\233\236\345\200\274\357\274\211.md" new file mode 100644 index 0000000000000000000000000000000000000000..1cad4235f2f399d5791a086366c0c852d9c714ff --- /dev/null +++ "b/\346\226\271\345\256\207\350\210\252/20241125\347\254\224\350\256\260\357\274\210\350\277\224\345\233\236\345\200\274\357\274\211.md" @@ -0,0 +1,87 @@ +### 1.HTTP请求 ++ get ++ post ++ put ++ delete + +### MVC模式中常见的Action的返回值类型 + - 返回常见数据类型,如int、string、IList<> + - IActionResult,返回响应状态码,如200,301,401,404,500等 + - 视图 + - 重定向 + - ActionResult<>,可以同时返回状态码或者常规数据类型 + - JsonResult、ContentResult,返回响应就是纯粹的数据 + - PoCo,可以返回一个对象,而这个对象在被返回的时候,会被序列化(相对应的是,反序列化)-->Json{"name":"xxx"} +信息-->(序列化)网络-->(反序列化)信息 ++ int ++ string ++ IList<> +IActionResult-->(接口),返回响应状态码:200(请求成功,响应正常)、301(重定向)、401、404(资源找不到)、500(服务器错误)等 + + +### 代码 +``` +// 生成一个随机整数,范围[0,100],注意是否包含 +public IActionResult Index() +{ + Random random = new Random(); + // 101是因为Next方法生成的是min到max-1之间的数 + int randomNumber = random.Next(0, 101); + return View(randomNumber); +} +``` + +``` +// 生成一个随机整数,范围(0,100],注意是否包含 +public IActionResult Index_2() +{ + Random random = new Random(); + int randomNumber = random.Next(1, 101); + return View(randomNumber); +} +``` +``` +// 生成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); +} +``` +// 定义一个字符串,字符串中有100个中文字符,需要从中随机取1个字符串 +``` +public IActionResult Index_4() +{ + string str = "圣诞快乐防滑袜诶哦福少得可怜的抗衰老附件为我偶尔俯瞰风景是考虑对方是打开了房间围殴富士康冷冻机房看到了设计费我奥维复刻等级分开了就覅为覅欧文考了多少分加温敷我偶尔就上课了读后感我博文阿付款了东方航空我欧文富爱哦见风使舵考虑过围殴考虑的世界观SDK围观我欧股圣诞快乐归结为快乐感我感觉但是看了各位我欧股圣诞快乐九分裤老实交代购卡就是地方G额如果根深蒂固第三个人工认为太过分广东人; + + Random random = new Random(); + char oneChinese = str[random.Next(str.Length)]; + + return View(oneChinese); +} +``` +定义一个字符串,字符串中有100个中文字符,需要从中随机取5-50个字符,组成新的字符 +``` +public ActionResult Index_5() +{ + string str = "爱搜皮肤哦未予考虑等级分类吾爱范围欧覅瓯都市收到覅文化覅欧文恢复健康收到货辅导费圣诞节发多少恢复加快速度发货未获得就开始发货就好速度和范围UI会尽快收到回复修改一点瑞未发货符合U盾师傅IE维护会儿会和深度和;鬼剖宫一块了圣诞快乐规划日哦更好看领导额度无法核实的经费和健康危害的虽符合的第三方和五日后的就是根据考试的规划几点开始为UI活动就开始点击返回恶违法和技术的开发和健康无法回武汉"; + 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(); +} +``` \ No newline at end of file diff --git "a/\346\226\271\345\256\207\350\210\252/20241127\347\254\224\350\256\260\357\274\210Razor\346\240\207\350\256\260\357\274\211.md" "b/\346\226\271\345\256\207\350\210\252/20241127\347\254\224\350\256\260\357\274\210Razor\346\240\207\350\256\260\357\274\211.md" new file mode 100644 index 0000000000000000000000000000000000000000..9955e9de5a462cabca85879f28d87c4d1e8137cf --- /dev/null +++ "b/\346\226\271\345\256\207\350\210\252/20241127\347\254\224\350\256\260\357\274\210Razor\346\240\207\350\256\260\357\274\211.md" @@ -0,0 +1,36 @@ +### Razor的基本概念 +定义: Razor是一种标记语法,允许开发者在HTML中嵌入C#代码。它通过使用@符号来转换HTML和C#代码 + +文件扩展名: 通常,Razor视图文件使用.cshtml扩展名,这意味着这些文件包含HTML和C#代 + +### Razor的主要功能 +1. +嵌入C#代码: +Razor支持在HTML中直接编写C#代码,使得开发者可以动态生成内容。例如,可以使用@DateTime.Now来显示当前日期和时间 + +2. +表达式和代码块: +隐式表达式: 以@开头,后跟C#代码,如@Model.Property。 +显式表达式: 使用@()包裹C#表达式,以确保表达式正确解析。例如,@(Model.Property + 1) + +代码块: 使用@{}来包含多行C#代码,这些代码不会直接输出到HTML中,而是用于逻辑处理 + +3. +数据绑定: +Razor支持与模型(Model)的双向数据绑定,允许视图直接访问和显示模型数据。这在MVC模式中非常有用,因为它简化了数据传递和显示的过程 + +4. +布局和部分视图: +Razor支持布局(Layouts)和部分视图(Partial Views),这使得开发者可以重用代码并保持一致的页面结构。例如,可以使用_Layout.cshtml来定义页面的通用结构 + +5. +控制结构: +Razor支持C#的控制结构,如@if、@for、@foreach等,这些结构允许开发者在视图中实现复杂的逻辑 + +### Razor的优势 + +简洁性: Razor语法简洁,易于学习和使用,尤其对于熟悉C#的开发者来说。 + +灵活性: 通过支持C#代码,Razor提供了强大的功能来处理复杂的业务逻辑和数据处理。 + +集成性: 与ASP.NET Core MVC无缝集成,提供了高效的视图渲染能力。 \ No newline at end of file diff --git "a/\346\226\271\345\256\207\350\210\252/20241129\347\254\224\350\256\260\357\274\210\345\210\227\350\241\250\357\274\211.md" "b/\346\226\271\345\256\207\350\210\252/20241129\347\254\224\350\256\260\357\274\210\345\210\227\350\241\250\357\274\211.md" new file mode 100644 index 0000000000000000000000000000000000000000..4acd2890807c9201e808e3933d763a199414c42d --- /dev/null +++ "b/\346\226\271\345\256\207\350\210\252/20241129\347\254\224\350\256\260\357\274\210\345\210\227\350\241\250\357\274\211.md" @@ -0,0 +1,108 @@ +## CRUD列表 + +### MVC架构基础 +Model(模型): 负责数据的处理和业务逻辑。它与数据库交互,获取和存储数据。 + +View(视图): 负责数据的展示。它接收来自控制器的数据并渲染给用户。 + +Controller(控制器): 处理用户请求,协调模型和视图。它接收用户输入,调用模型进行数据处理,并将结果传递给视图。 + +### 数据模型(Model) + +定义与数据库表对应的数据模型。可以定义如下: +``` +public class User { + public int Id { get; set; } + public string Name { get; set; } + public string Email { get; set; } +} +``` + +### 控制器(Controller) + +控制器负责处理HTTP请求并返回相应的视图 + +#### 读取(Read) + +``` +public class UserController : Controller { + // 显示用户列表 + public ActionResult Index() { + List users = db.Users.ToList(); + return View(users); + } +} +``` + +#### 创建(Create): + +``` +// 显示创建表单 +public ActionResult Create() { + return View(); +} + +// 处理创建表单提交 +[HttpPost] +public ActionResult Create(User user) { + if (ModelState.IsValid) { + db.Users.Add(user); + db.SaveChanges(); + return RedirectToAction("Index"); + } + return View(user); +} +``` + + +### 视图(View) +使用Razor视图引擎(或其他模板引擎)来渲染数据。 + +用户列表视图 +``` +@model IEnumerable + + + + + + + + + + + + @foreach (var user in Model) { + + + + + + + } + +
IDNameEmailActions
@user.Id@user.Name@user.Email + Edit | + Delete +
+ +Create New User +``` +#### 创建和编辑表单视图 + +``` +@model YourNamespace.User + +
+ @Html.AntiForgeryToken() +
+ @Html.LabelFor(m => m.Name) + @Html.TextBoxFor(m => m.Name) +
+
+ @Html.LabelFor(m => m.Email) + @Html.TextBoxFor(m => m.Email) +
+ +
+``` \ No newline at end of file