From 6c00ae94ea13acfa99cd5f5c17b5743aa59d8c9a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=A8=E6=88=90=E8=B1=AA?= <1400383615@qq.com>
Date: Sun, 24 Nov 2024 21:15:55 +0800
Subject: [PATCH] 20241124
---
...31\346\200\201\347\275\221\347\253\231.md" | 2 +-
...345\273\272mvc\351\241\271\347\233\256.md" | 114 ------------
...70\350\247\201\346\214\207\344\273\244.md" | 45 +++++
.../20241113-mvc\351\241\271\347\233\256.md" | 22 +++
...46\346\234\215\345\212\241\345\231\250.md" | 165 ------------------
...72\347\241\200\347\273\223\346\236\204.md" | 67 +++++++
...57\345\242\203\345\217\230\351\207\217.md" | 4 -
.../20241118-mvc\345\237\272\347\241\200.md" | 69 ++++++++
.../20241120-httppost.md" | 65 +++++++
9 files changed, 269 insertions(+), 284 deletions(-)
delete mode 100644 "\346\235\250\346\210\220\350\261\252/20241111-\345\210\233\345\273\272mvc\351\241\271\347\233\256.md"
create mode 100644 "\346\235\250\346\210\220\350\261\252/20241111-\345\270\270\350\247\201\346\214\207\344\273\244.md"
create mode 100644 "\346\235\250\346\210\220\350\261\252/20241113-mvc\351\241\271\347\233\256.md"
delete mode 100644 "\346\235\250\346\210\220\350\261\252/20241113-\345\260\206.Net\345\272\224\347\224\250\351\203\250\347\275\262\345\270\246\346\234\215\345\212\241\345\231\250.md"
create mode 100644 "\346\235\250\346\210\220\350\261\252/20241114-mvc\351\241\271\347\233\256\345\237\272\347\241\200\347\273\223\346\236\204.md"
delete mode 100644 "\346\235\250\346\210\220\350\261\252/20241114-\351\205\215\347\275\256\347\216\257\345\242\203\345\217\230\351\207\217.md"
create mode 100644 "\346\235\250\346\210\220\350\261\252/20241118-mvc\345\237\272\347\241\200.md"
create mode 100644 "\346\235\250\346\210\220\350\261\252/20241120-httppost.md"
diff --git "a/\346\235\250\346\210\220\350\261\252/20241106-SSH\350\277\234\347\250\213\350\277\236\346\216\245_\345\256\211\350\243\205nigx_\351\203\250\347\275\262\351\235\231\346\200\201\347\275\221\347\253\231.md" "b/\346\235\250\346\210\220\350\261\252/20241106-SSH\350\277\234\347\250\213\350\277\236\346\216\245_\345\256\211\350\243\205nigx_\351\203\250\347\275\262\351\235\231\346\200\201\347\275\221\347\253\231.md"
index a152a84..ecee625 100644
--- "a/\346\235\250\346\210\220\350\261\252/20241106-SSH\350\277\234\347\250\213\350\277\236\346\216\245_\345\256\211\350\243\205nigx_\351\203\250\347\275\262\351\235\231\346\200\201\347\275\221\347\253\231.md"
+++ "b/\346\235\250\346\210\220\350\261\252/20241106-SSH\350\277\234\347\250\213\350\277\236\346\216\245_\345\256\211\350\243\205nigx_\351\203\250\347\275\262\351\235\231\346\200\201\347\275\221\347\253\231.md"
@@ -2,7 +2,7 @@
1. 检查网络连接
```
- ping 远程主机地址
+ping 远程主机地址
```
2. 连接服务器
diff --git "a/\346\235\250\346\210\220\350\261\252/20241111-\345\210\233\345\273\272mvc\351\241\271\347\233\256.md" "b/\346\235\250\346\210\220\350\261\252/20241111-\345\210\233\345\273\272mvc\351\241\271\347\233\256.md"
deleted file mode 100644
index be24611..0000000
--- "a/\346\235\250\346\210\220\350\261\252/20241111-\345\210\233\345\273\272mvc\351\241\271\347\233\256.md"
+++ /dev/null
@@ -1,114 +0,0 @@
-### 安装 .NET SDK(如果尚未安装)
-首先,确保你已经安装了最新版本的 .NET SDK。如果还没有安装,可以参考之前的步骤来安装 .NET SDK 和运行时。
-
-可以使用以下命令检查是否已安装:
-
-dotnet --version
-2. 创建一个新的 MVC 项目
-使用 .NET CLI 来创建 MVC 项目。在命令行中执行以下命令:
-
-dotnet new mvc -n MyMvcApp
-解释:
-dotnet new mvc:创建一个新的 ASP.NET MVC 项目。
--n MyMvcApp:指定项目的名称,这里使用 MyMvcApp 作为项目名,你可以根据需要修改为其他名称。
-执行完后,.NET 将会生成一个新的 MVC 项目,包含基础的控制器、视图和模型文件。
-
-3. 进入项目目录
-创建完成后,进入你的项目目录:
-
-cd MyMvcApp
-4. 运行项目
-运行你的 MVC 项目,启动开发服务器:
-
-dotnet run
-这时,你可以在浏览器中访问 http://localhost:5000,你应该能够看到一个基础的 MVC 应用页面。
-
-5. 项目结构
-创建的 MVC 项目会包含以下目录和文件:
-
-Controllers:控制器类,负责处理用户的请求并返回响应。
-
-默认的 HomeController.cs 文件。
-Views:视图文件,使用 Razor 语法来呈现 HTML 页面。
-
-默认的 Home/Index.cshtml 视图。
-Models:用于存放数据模型的类。
-
-默认没有创建模型类,但可以根据需求手动创建。
-wwwroot:包含静态文件,如 CSS、JavaScript 和图片。
-
-appsettings.json:应用程序的配置文件。
-
-Program.cs:配置和启动应用程序的入口点。
-
-6. 访问控制器和视图
-控制器:你可以在 Controllers 目录下创建自己的控制器文件。例如,创建一个新的控制器 ProductController.cs 来处理产品相关的请求。
-
-示例:
-
-public class ProductController : Controller
-{
- public IActionResult Index()
- {
- return View();
- }
-}
-最基本的控制器结构
-csharp复制代码using Microsoft.AspNetCore.Mvc;
-
-namespace MyMvcApp.Controllers
-{
- // 控制器类继承自 Controller 基类
- public class HomeController : Controller
- {
- // 最简单的操作方法,返回视图
- public IActionResult Index()
- {
- return View();
- }
- }
-}
-视图:你可以在 Views 目录下为控制器创建视图文件。例如,为 ProductController 创建 Index.cshtml 视图文件。
-
-示例:
-
-@* Views/Product/Index.cshtml *@
-
Product List
-Here you can list all your products.
-7. 配置数据库(如果需要)
-如果你的项目需要连接数据库,你可以通过 Entity Framework Core 来配置和使用数据库。
-
-安装相关的 NuGet 包:
-
-dotnet add package Microsoft.EntityFrameworkCore.SqlServer
-dotnet add package Microsoft.EntityFrameworkCore.Tools
-创建数据库上下文类,并在 Startup.cs 中配置数据库连接。
-
-例如,创建 ApplicationDbContext.cs:
-
-using Microsoft.EntityFrameworkCore;
-
-public class ApplicationDbContext : DbContext
-{
- public DbSet Products { get; set; }
-
- public ApplicationDbContext(DbContextOptions options)
- : base(options)
- {
- }
-}
-8. 调整路由(可选)
-如果你想修改默认路由,可以在 Program.cs 或 Startup.cs 文件中进行配置。
-
-例如,默认路由通常是:
-
-app.MapControllerRoute(
- name: "default",
- pattern: "{controller=Home}/{action=Index}/{id?}");
-你可以根据需要调整路由规则。
-
-9. 发布应用(生产环境)
-一旦你完成了 MVC 应用开发并准备部署到生产环境,可以使用以下命令将应用发布为可部署的文件:
-
-dotnet publish --configuration Release --output ./publish
-然后,将生成的文件上传到服务器,或者通过 Docker 等工具进行部署
\ No newline at end of file
diff --git "a/\346\235\250\346\210\220\350\261\252/20241111-\345\270\270\350\247\201\346\214\207\344\273\244.md" "b/\346\235\250\346\210\220\350\261\252/20241111-\345\270\270\350\247\201\346\214\207\344\273\244.md"
new file mode 100644
index 0000000..f5b8826
--- /dev/null
+++ "b/\346\235\250\346\210\220\350\261\252/20241111-\345\270\270\350\247\201\346\214\207\344\273\244.md"
@@ -0,0 +1,45 @@
+1. 查看当前目录下的文件和文件夹:`ls`
+
+2. 查看当前路径:`pwd`
+
+3. 创建一个新的文件夹 `mkdir [文件夹名]`
+
+4. 删除一个文件夹 `rmdir [文件夹名](注意:只能删除空文件夹)`
+
+5. 移动或重命名文件/文件夹 `mv [原路径] [新路径]`
+
+6. 复制文件 `cp [源文件] [目标路径]`
+
+7. 删除文件 `rm [文件名]`
+
+8. 查看文件内容 `cat [文件名]`
+
+9. 分页查看文件内容 `less [文件名]`
+
+10. 查找文件 `find / -name [文件名]`
+
+11. 查看文件权限 `ls -l [文件或目录名]`
+
+12. 改变文件权限 `chmod [权限] [文件或目录名]`
+
+13. 改变文件所有者 `chown [新所有者] [文件或目录名]`
+
+14. 查看当前登录用户 `whoami`
+
+15. 查看系统运行时间和平均负载 `uptime`
+
+16. 查看磁盘使用情况 `df -h`
+
+17. 查看当前路径下的隐藏文件 `ls -a`
+
+18. 创建一个空文件 `touch [文件名]`
+
+19. 查看当前系统的内核版本 `uname -r`
+
+20. 查看网络连接状态 `ifconfig 或 ip addr`
+
+21. 安装一个软件包 `sudo apt-get install [软件包名]`
+
+22. 卸载一个软件包 `sudo apt-get remove [软件包名]`
+
+23. 更新软件包列表 `sudo apt-get update`
\ No newline at end of file
diff --git "a/\346\235\250\346\210\220\350\261\252/20241113-mvc\351\241\271\347\233\256.md" "b/\346\235\250\346\210\220\350\261\252/20241113-mvc\351\241\271\347\233\256.md"
new file mode 100644
index 0000000..20b62b7
--- /dev/null
+++ "b/\346\235\250\346\210\220\350\261\252/20241113-mvc\351\241\271\347\233\256.md"
@@ -0,0 +1,22 @@
+1. 安装 .NET SDK(如果尚未安装)可以使用以下命令检查是否已安装:`dotnet --version`
+
+2. 创建一个新的 MVC 项目:
+```
+dotnet new mvc -n MyMvcApp
+```
+
+3. 进入项目目录,运行项目
+```
+cd MyMvcApp
+dotnet run
+```
+
+4. 创建解决方案和类库并添加
+```
+dotnet new sln -n ComprehensiveSolution
+dotnet sln ComprehensiveSolution.sln add MyMvcApp
+
+dotnet new classlib -n ClassLibrary
+dotnet sln ComprehensiveSolution.sln add ClassLibrary
+```
+
diff --git "a/\346\235\250\346\210\220\350\261\252/20241113-\345\260\206.Net\345\272\224\347\224\250\351\203\250\347\275\262\345\270\246\346\234\215\345\212\241\345\231\250.md" "b/\346\235\250\346\210\220\350\261\252/20241113-\345\260\206.Net\345\272\224\347\224\250\351\203\250\347\275\262\345\270\246\346\234\215\345\212\241\345\231\250.md"
deleted file mode 100644
index 99deb60..0000000
--- "a/\346\235\250\346\210\220\350\261\252/20241113-\345\260\206.Net\345\272\224\347\224\250\351\203\250\347\275\262\345\270\246\346\234\215\345\212\241\345\231\250.md"
+++ /dev/null
@@ -1,165 +0,0 @@
-1. 准备工作
-在开始之前,请确保你的服务器上已经安装了以下内容:
-
-.NET SDK 和运行时:确保服务器上安装了 .NET 的运行时,至少需要安装与项目相匹配的版本(如 .NET 7 或 .NET 8)。
-Nginx:用作反向代理,确保服务器上已经安装 Nginx。
-安装 .NET SDK 和运行时
-如果你的服务器还没有安装 .NET,可以使用以下命令进行安装(以 Debian 为例):
-
-参考微软官方.NET文档
-
-在 Debian 上安装 .NET - .NET | Microsoft Learn
-
-Debian 12
-使用 APT 进行安装可通过几个命令来完成。 安装 .NET 之前,请运行以下命令,将 Microsoft 包签名密钥添加到受信任密钥列表,并添加包存储库。
-
-打开终端并运行以下命令:
-
-wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
-sudo dpkg -i packages-microsoft-prod.deb
-rm packages-microsoft-prod.deb
-安装 SDK
-.NET SDK 使你可以通过 .NET 开发应用。 如果安装 .NET SDK,则无需安装相应的运行时。 若要安装 .NET SDK,请运行以下命令:
-
-sudo apt-get update && \
- sudo apt-get install -y dotnet-sdk-8.0
-若要了解如何使用 .NET CLI,请参阅 .NET CLI 概述。
-
-安装运行时
-通过 ASP.NET Core 运行时,可以运行使用 .NET 开发且未提供运行时的应用。 以下命令将安装 ASP.NET Core 运行时,这是与 .NET 最兼容的运行时。 在终端中,运行以下命令:
-
-sudo apt-get update && \
- sudo apt-get install -y aspnetcore-runtime-8.0
-作为 ASP.NET Core 运行时的一种替代方法,你可以安装不包含 ASP.NET Core 支持的 .NET 运行时:将上一命令中的 aspnetcore-runtime-8.0 替换为 dotnet-runtime-8.0:
-
-sudo apt-get install -y dotnet-runtime-8.0
-若要了解如何使用 .NET CLI,请参阅 .NET CLI 概述。
-
-检查版本
-使用命令,如果有返回说明安装成功
-
-dotnet --version
-安装 Nginx(已安装的话省略)
-可以使用以下命令在 Debian 上安装 Nginx:
-
-sudo apt update
-sudo apt install nginx
-安装完成后,你可以使用以下命令检查 Nginx 是否正常启动:
-
-sudo systemctl start nginx
-sudo systemctl enable nginx
-2. 发布 .NET 应用
-一般来说使用以下命令就可以,如需更多指定选项请使用第二个
-
-dotnet publish
-首先,使用 dotnet publish 命令将应用程序发布为可以在生产环境中运行的文件。
-
-dotnet publish --configuration Release --output ./publish
-说明:
---configuration Release:指定使用发布模式,这会优化项目并去掉调试信息。
---output ./publish:指定发布文件输出的目录。
-发布完成后,生成的文件会放在 ./publish 目录中。这些文件包括所有的依赖项、程序集和可执行文件。
-
-3. 上传应用到服务器
-使用 scp 或任何文件传输工具,将发布的文件上传到服务器。例如,你可以使用 scp 命令将文件夹上传到服务器的 /var/www/myapp 目录:
-
-scp -r ./publish/* user@your_server_ip:/var/www/myapp
-说明:
-user 是服务器的用户名,your_server_ip 是你的服务器的 IP 地址。
-上传的文件将存放在服务器的 /var/www/myapp 目录中。
-4. 配置 .NET 应用为后台服务 (根据需求可选)
-为了确保应用在后台运行,可以使用 systemd 来管理 .NET 应用。首先,我们需要创建一个 systemd 服务文件。
-
-创建一个新的 systemd 服务文件:
-sudo nano /etc/systemd/system/myapp.service
-在文件中添加以下内容:
-[Unit]
-Description=My .NET Application
-After=network.target
-
-[Service]
-WorkingDirectory=/var/www/myapp
-ExecStart=/usr/bin/dotnet /var/www/myapp/MyApp.dll
-Restart=always
-# Uncomment to allow for environment variable configuration (optional)
-# Environment=ASPNETCORE_ENVIRONMENT=Production
-User=www-data
-Group=www-data
-# Uncomment to set a specific user/group for your application
-
-[Install]
-WantedBy=multi-user.target
-解释:
-WorkingDirectory:指定应用程序所在的目录。
-ExecStart:指定启动应用的命令,这里假设应用的入口文件是 MyApp.dll。
-Restart=always:应用崩溃时自动重启。
-User=www-data 和 Group=www-data:指定运行应用的用户和组,通常 Web 服务器的用户是 www-data。
-保存并关闭文件后,重新加载 systemd 配置:
-sudo systemctl daemon-reload
-启动应用并设置为开机自启动:
-sudo systemctl start myapp
-sudo systemctl enable myapp
-使用以下命令检查应用状态:
-sudo systemctl status myapp
-说明:
-现在,.NET 应用会在后台作为服务运行,并会在服务器重启后自动启动。
-5. 配置 Nginx 反向代理
-Nginx 将用作反向代理服务器,将外部请求转发给你在后台运行的 .NET 应用。首先,编辑 Nginx 配置文件:
-
-sudo nano /etc/nginx/sites-available/myapp
-添加以下配置:
-
-简略配置
-
-server {
- listen 80; # 监听80端口
- server_name 你的域名或者IP;
-
- location / {
- proxy_pass http://localhost:5000; # 假设你的 .NET 应用监听在 5000 端口
- }
-}
-详细配置
-
-server {
- listen 80; # 监听80端口
- server_name 你的域名或者IP;
-
- location / {
- proxy_pass http://localhost:5000; # 假设你的 .NET 应用监听在 5000 端口
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header X-Forwarded-Proto $scheme;
- }
-}
-解释:
-listen 80;:Nginx 会监听 80 端口(即 HTTP)。
-server_name your_domain_or_ip;:这里替换为你的域名或者 IP 地址。
-proxy_pass http://localhost:5000;:将请求转发到本地 5000 端口(假设你的 .NET 应用在该端口上监听)。
-6. 测试 Nginx 配置并重新加载
-测试 Nginx 配置是否正确:
-
-sudo nginx -t
-如果没有错误,重新加载 Nginx 配置:
-
-sudo systemctl reload nginx
-7. 防火墙设置(如果安装了ufw防火墙)
-如果服务器上启用了防火墙,确保 80 端口是开放的:
-
-sudo ufw allow 'Nginx Full'
-这样,Nginx 将开始接受外部 HTTP 请求。
-
-ufw 防火墙配置解释:
-UFW(Uncomplicated Firewall) 是一个用于配置和管理 Linux 防火墙的工具,它基于 iptables,提供了一个简化的命令行接口。
-Nginx Full 是 UFW 防火墙的一个预定义规则,允许 HTTP 和 HTTPS 流量。具体包括:
-80/tcp(HTTP 默认端口)
-443/tcp(HTTPS 默认端口)
-8. 完成部署
-现在,.NET 应用已经通过 Nginx 反向代理部署到服务器上,运行后就可以通过域名或 IP 地址访问。
-
-总结:
-我们首先将 .NET 应用发布并上传到服务器。
-使用 systemd 配置后台运行应用,确保应用在服务器重启后能自动启动。
-配置 Nginx 作为反向代理,将外部请求转发给 .NET 应用。
-运行并尝试访问。
\ No newline at end of file
diff --git "a/\346\235\250\346\210\220\350\261\252/20241114-mvc\351\241\271\347\233\256\345\237\272\347\241\200\347\273\223\346\236\204.md" "b/\346\235\250\346\210\220\350\261\252/20241114-mvc\351\241\271\347\233\256\345\237\272\347\241\200\347\273\223\346\236\204.md"
new file mode 100644
index 0000000..157df83
--- /dev/null
+++ "b/\346\235\250\346\210\220\350\261\252/20241114-mvc\351\241\271\347\233\256\345\237\272\347\241\200\347\273\223\346\236\204.md"
@@ -0,0 +1,67 @@
+1. 解决方案文件 (.sln):
+
+ + 这是Visual Studio使用的解决方案文件,它包含项目间的关系和配置。
+
+2. 项目文件 (.csproj):
+
+ + 这是项目的项目文件,包含了项目的所有配置和依赖项。
+3. Program.cs:
+
+ + 包含程序的入口点,定义了如何配置服务和启动主机。
+
+4. Startup.cs:
+
+ + 包含配置服务和请求管道的代码。请求管道定义了请求是如何被处理的。
+
+5. Controllers:
+
+ + 控制器文件夹包含所有的控制器类,这些类处理用户请求并返回视图或数据。
+
+6. Views:
+
+ + 视图文件夹包含所有的视图文件,这些文件负责呈现HTML内容给用户。
+
+7. Models:
+
+ + 模型文件夹包含所有的模型类,这些类代表数据和业务逻辑。
+
+8. wwwroot:
+
+ + 包含静态文件,如JavaScript、CSS、图片和客户端视图文件。
+
+9. Data:
+
+ + (可选)包含数据访问代码,如Entity Framework Core的
+ DbContext。
+
+10. Migrations:
+
+ + (可选)包含Entity Framework Core的数据库迁移文件。
+
+11. appsettings.json:
+
+ + 包含配置设置,如数据库连接字符串和其他应用设置。
+
+12. Controllers:
+
+ + 控制器文件夹包含控制器类,这些类包含处理HTTP请求的方法(Action)。
+
+13. Views:
+
+ + 视图文件夹包含Razor视图文件,这些文件定义了HTML结构和服务器端代码。
+
+14. wwwroot:
+
+ + 网站的根目录,用于存放静态文件。
+
+15. Dependencies:
+
+ + 包含项目依赖的库文件。
+
+16. obj:
+
+ + 包含编译过程中生成的中间文件。
+
+17. bin:
+
+ + 包含编译后的程序集和运行时文件。
\ No newline at end of file
diff --git "a/\346\235\250\346\210\220\350\261\252/20241114-\351\205\215\347\275\256\347\216\257\345\242\203\345\217\230\351\207\217.md" "b/\346\235\250\346\210\220\350\261\252/20241114-\351\205\215\347\275\256\347\216\257\345\242\203\345\217\230\351\207\217.md"
deleted file mode 100644
index 2b6a483..0000000
--- "a/\346\235\250\346\210\220\350\261\252/20241114-\351\205\215\347\275\256\347\216\257\345\242\203\345\217\230\351\207\217.md"
+++ /dev/null
@@ -1,4 +0,0 @@
-+ DOTNET_HOME:配置 .NET SDK 安装路径,便于其他程序识别 .NET 环境。
-+ PATH:将 .NET SDK 路径添加到 PATH 环境变量中,确保可以在命令行中运行 dotnet 命令。
-+ 命令行设置:可以通过 setx 或 PowerShell 设置环境变量,确保 .NET 环境配置永久生效。
-+ 验证配置:通过 dotnet --version 命令验证环境变量是否配置正确。
\ No newline at end of file
diff --git "a/\346\235\250\346\210\220\350\261\252/20241118-mvc\345\237\272\347\241\200.md" "b/\346\235\250\346\210\220\350\261\252/20241118-mvc\345\237\272\347\241\200.md"
new file mode 100644
index 0000000..9663dc3
--- /dev/null
+++ "b/\346\235\250\346\210\220\350\261\252/20241118-mvc\345\237\272\347\241\200.md"
@@ -0,0 +1,69 @@
+1. 在默认控制器(Home)下,新增一个方法,同时为其创建对应视图以显示这个视图
+```cs
+//在Controllers文件夹下的HomeController.cs中添加:
+public IActionResult Ok()
+{
+ return View();
+}
+//然后在Views/Home目录下创建Ok.cshtml视图文件
+```
+
+2. 创建一个新的控制器并使用该方法返回一个视图
+```cs
+//在Controllers文件夹中创建BlogsController.cs并添加
+using Microsoft.AspNetCore.Mvc;
+
+
+namespace MyMvcProject.Controllers;
+
+public class BlogsController : Controller
+{
+
+public IActionResult Index()
+{
+ ViewBag.Message = "神级预判";
+ return View();
+}
+
+}
+//也需在Views/Blogs目录下创建Index.cshtml视图文件
+```
+
+3. 创建可以接受参数的方法
+```cs
+//在新建的ProductsController.cs中添加
+using Microsoft.AspNetCore.Mvc;
+
+
+namespace MyMvcProject.Controllers;
+
+public class ProductsController : Controller
+{
+
+public IActionResult Edit(int id){
+ ViewBag.Id = id;
+ return View();
+}
+public IActionResult Create(Students stu){
+ ViewBag.Name = stu.Name;
+ return View();
+}
+}
+
+public class Students{
+ public string Name {get; set;} = "ikun";
+ public string Age {get; set;} = "18";
+ public string height {get; set;} = "250";
+}
+```
++ 在Views/Products目录下创建Edit.cshtml视图文件,并添加:
+```html
+@ViewBag.Id
+```
+
++ Views/Products目录下创建Create.cshtml视图文件,并添加:
+```html
+@ViewBag.Name
+```
+
+
diff --git "a/\346\235\250\346\210\220\350\261\252/20241120-httppost.md" "b/\346\235\250\346\210\220\350\261\252/20241120-httppost.md"
new file mode 100644
index 0000000..89a0919
--- /dev/null
+++ "b/\346\235\250\346\210\220\350\261\252/20241120-httppost.md"
@@ -0,0 +1,65 @@
+### 如何创建处理HTTPPOST请求的方法
+1. 创建模型(Model)
+你定义了一个MyModel类,它包含了两个属性:Name和Email。这个模型将用于表单数据的绑定。
+```csharp
+public class MyModel
+{
+ public string Name { get; set; }
+ public string Email { get; set; }
+}
+```
+2. 创建控制器(Controller)
+你创建了一个名为MyController的控制器,并在其中添加了一个处理POST请求的方法Submit。
+
+```csharp
+public class MyController : Controller
+{
+ [HttpPost]
+ public IActionResult Submit(MyModel model)
+ {
+ if (ModelState.IsValid)
+ {
+ // 处理模型数据,比如保存到数据库
+ // 返回一个结果,比如重定向到另一个页面
+ return RedirectToAction("Success");
+ }
+ else
+ {
+ // 模型验证失败,返回视图并附带错误信息
+ return View(model);
+ }
+ }
+}
+```
+3. 创建视图(View)
+你为Submit方法创建了一个Razor视图Submit.cshtml,用户可以通过这个视图提交表单。
+
+```html
+
+@model MyModel
+
+
+```
+4. 配置路由
+你提到了默认的路由配置,这确保了请求能够正确地映射到控制器和动作方法。
+
+```csharp
+routes.MapRoute(
+ name: "default",
+ template: "{controller=Home}/{action=Index}/{id?}");
+```
+注:
+模型验证:在Submit方法中,ModelState.IsValid检查模型是否通过了验证。如果验证失败,用户会看到错误信息,并且表单会重新显示。
+数据保存:在验证通过后,你可以在Submit方法中添加代码来保存模型数据到数据库。
+重定向:使用RedirectToAction方法重定向到另一个页面,如“Success”页面,这可以防止表单提交后的页面刷新导致数据再次提交。
+视图位置:确保视图文件Submit.cshtml位于Views/My目录下,因为ASP.NET Core MVC默认会根据控制器名称查找对应的视图文件夹。
\ No newline at end of file
--
Gitee