diff --git "a/\344\276\257\345\207\244\351\230\263/20241118\347\254\224\350\256\260\357\274\210Linux\357\274\211.md" "b/\344\276\257\345\207\244\351\230\263/20241118\347\254\224\350\256\260\357\274\210Linux\357\274\211.md" new file mode 100644 index 0000000000000000000000000000000000000000..1ef154ab4f28620a901a3fa9ed6b8e360b01e561 --- /dev/null +++ "b/\344\276\257\345\207\244\351\230\263/20241118\347\254\224\350\256\260\357\274\210Linux\357\274\211.md" @@ -0,0 +1,22 @@ + 1 项目组织结构 + * 解决方案和项目的架构 + * mvc项目的结构解读 + +* 2 在Linux上部署MVC项目 + * 创建模板ASP.Net Core Web 应用 + * 在控制器和视图中写入相应文件 + * 安装sdk运行环境 + * 打包上传程序 + + ls:列出当前目录中的文件和子目录 +pwd:显示当前工作目录的路径 +cd:切换工作目录 +rmdir:删除空目录 +rm:删除文件或目录 +cp:复制文件或目录 +mv:移动或重命名文件或目录 +touch:创建空文件或更新文件的时间戳 +cat:连接和显示文件内容 +more/less:逐页显示文本文件内容 +head/tail:显示文件前几行或后几行 +grep:在文件中搜索指定文本 \ No newline at end of file diff --git "a/\344\276\257\345\207\244\351\230\263/20241120\347\254\224\350\256\260\357\274\210\346\234\215\345\212\241\345\231\250\357\274\211.md" "b/\344\276\257\345\207\244\351\230\263/20241120\347\254\224\350\256\260\357\274\210\346\234\215\345\212\241\345\231\250\357\274\211.md" new file mode 100644 index 0000000000000000000000000000000000000000..c859bba9c9879796041a3ebca42992e2335f8115 --- /dev/null +++ "b/\344\276\257\345\207\244\351\230\263/20241120\347\254\224\350\256\260\357\274\210\346\234\215\345\212\241\345\231\250\357\274\211.md" @@ -0,0 +1,45 @@ +## Debian部署MVC(Asp.Net Core)的先决条件 + +1. 在服务器上安装运行环境或者调试环境 + 1. 安装SDK 包管理器 + - 下载文件 + - 注册文件 + - 删除刚才注册的文件 rm(可有可不有) + - 更新软件源 apt update + - 安装SDK apt install dotnet-sdk-8.0 + 2. 在Linux上安装软件或者应用,常用方式如下: + - 包管理器(相对于用户来说最简单) + - 使用二进制文件安装 (次简单) + - 编译安装 (最难) + + +2. 将打包好的程序上传到指定目录 + 1. 创建模板(模型-视图-控制器) + 2. 写程序(网页) + 3. 打包上传,以下两种方式: + 1) 使用scp工具 scp -r ./* root@XXXX.XXX:var/www/XXXX.XXX + - 打包 dotnet publish + - 测试是否完成(在工作中一般建议测试) + - 在终端dotnet .\bin\Release\net8.0\publish\XXX.dll + - 在资源管理器中打开PowerShell窗口跑文件 + - 上传 + 2) xftp + 4. 跑一下上面上传的程序,测试是否成功:dotnet XXX.lcann.cn/XXX.dll(如果成功,则在后续工作不能停止运行) + + +3. 一般建议使用Nginx做反向代理 + 1. 看一下上面的程序是否在网站当中:curl http://localhost:5000; + 2. 为该网站配置文件(反向代理) + - 切换目录:cd /etc/nginx/conf.d + - 反向代理配置文件: + ``` + server{ + listen 80; + server_name XXX.lcann.cn; + location / { + proxy_pass http:localhost:5000; + } + } + ``` + - 检查是否有语法错误:nginx -t + - 重新加载配置:nginx -s reload diff --git "a/\344\276\257\345\207\244\351\230\263/20241122\347\254\224\350\256\260\357\274\210\344\274\240\345\217\202\357\274\211.md" "b/\344\276\257\345\207\244\351\230\263/20241122\347\254\224\350\256\260\357\274\210\344\274\240\345\217\202\357\274\211.md" new file mode 100644 index 0000000000000000000000000000000000000000..32cfbddfed9dee2275a1d0901dd0078f44e5e449 --- /dev/null +++ "b/\344\276\257\345\207\244\351\230\263/20241122\347\254\224\350\256\260\357\274\210\344\274\240\345\217\202\357\274\211.md" @@ -0,0 +1,67 @@ +# 传参 + +### 简单传参(单个) +```csharp +public IActionResult Edit(int id){ + return Content(id.ToString()); +} +``` + +- 如有多个简单传参形式,则需修改Program.cs中的pattern里的值,例如: +```plaindext + pattern: "{controller=Home}/{action=Index}/{age?}"; +``` + +```csharp +public IActionResult Edit(int age){ + return Content(age.ToString()); +} +``` + + +### 复杂传参 +#### 第一步 +```csharp +[HttpPost] +public IActionResult Create([FromBody]Students students){ + return Content(JsonSerializer.Serialize(students)); +} +``` +- 该方式需创建视图中创建一个与控制器相对应对视图文件(书写样式时可用),但还是在Postman软件中查看(前提要运行该程序F5)。 + + + +#### 第二步 +```csharp +// [HttpPost] +public IActionResult Create([FromBody]Students students){ + return View(students); +} +``` + +- 需创建一个类,这个类里有属性 +```csharp +public class Students{ + public string Name{get;set;}=null!; + public string Age{get;set;}=null!; + public string Weight{get;set;}=null!; + public string Height{get;set;}=null!; +} +``` + + +#### 第三步 +- 因该方法在浏览器中无法查看,需到Postman这个软件中查看结果。 + +**在控制器中构造对象并传递给视图** +```csharp +public IActionResult Index(){ + var students=new Students{ + Name="零零", + Age="33", + Weight="55", + Height="34" + }; + return View(students); +} +``` \ No newline at end of file