From 50180cc4a971ade4506d29d236d6e5ca5dfc20bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=86=E6=BB=A2=E9=92=B0?= <14091774+well-yes@user.noreply.gitee.com> Date: Fri, 15 Nov 2024 17:31:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=A4=E4=BD=9C=E4=B8=9A=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...345\273\272MVC\351\241\271\347\233\256.md" | 108 ++++++++++++++++++ ...43\345\206\263\346\226\271\346\241\210.md" | 31 +++++ ...37\346\237\245\346\211\213\345\206\214.md" | 81 +++++++++++++ 3 files changed, 220 insertions(+) create mode 100644 "\351\231\206\346\273\242\351\222\260/20241111-\345\210\233\345\273\272MVC\351\241\271\347\233\256.md" create mode 100644 "\351\231\206\346\273\242\351\222\260/20241113-\345\210\233\345\273\272\350\247\243\345\206\263\346\226\271\346\241\210.md" create mode 100644 "\351\231\206\346\273\242\351\222\260/20241114-Linux\345\270\270\347\224\250\345\221\275\344\273\244\351\200\237\346\237\245\346\211\213\345\206\214.md" diff --git "a/\351\231\206\346\273\242\351\222\260/20241111-\345\210\233\345\273\272MVC\351\241\271\347\233\256.md" "b/\351\231\206\346\273\242\351\222\260/20241111-\345\210\233\345\273\272MVC\351\241\271\347\233\256.md" new file mode 100644 index 0000000..710934c --- /dev/null +++ "b/\351\231\206\346\273\242\351\222\260/20241111-\345\210\233\345\273\272MVC\351\241\271\347\233\256.md" @@ -0,0 +1,108 @@ +# 创建MVC项目知识点总结 + +## MVC架构简介 +MVC(Model-View-Controller)是一种用于实现用户界面的**分离关注点**的软件设计模式。它将应用程序分为三个核心组件: +- **模型(Model)**:应用程序的数据逻辑。 +- **视图(View)**:用户界面。 +- **控制器(Controller)**:业务逻辑,接收输入并调用模型和视图。 + +## 创建MVC项目的步骤 + +### 1. 环境准备 +- 确保已安装.NET SDK和Visual Studio或Visual Studio Code等开发环境。 + +### 2. 创建项目 +- 使用命令行或IDE创建一个新的MVC项目。 + - **命令行**: + ```shell + dotnet new mvc -n MyMVCProject + cd MyMVCProject + ``` + - **Visual Studio**: + - 文件 > 新建 > 项目 + - 选择“ASP.NET Core Web 应用” + - 选择“MVC”模板并点击“下一步” + +### 3. 解决方案结构 +- 理解MVC项目的基本文件和目录结构: + - `Controllers`:存放控制器文件。 + - `Models`:存放模型文件。 + - `Views`:存放视图文件,通常按控制器名称分目录。 + - `wwwroot`:静态文件目录。 + - `appsettings.json`:配置文件。 + +### 4. 定义模型 +- 在`Models`文件夹中创建模型类,定义数据结构和业务逻辑。 + +### 5. 创建数据库上下文 +- 使用Entity Framework Core,创建一个继承自`DbContext`的类,并配置模型的数据库映射。 + +### 6. 配置路由 +- 在`Startup.cs`中的`Configure`方法里配置路由,定义URL模式和对应的控制器动作。 + +### 7. 创建控制器 +- 在`Controllers`文件夹中创建控制器类,定义处理HTTP请求的方法(动作)。 + +### 8. 创建视图 +- 在`Views`文件夹中创建视图文件,使用Razor语法结合HTML和C#代码。 + +### 9. 运行和测试 +- 使用`dotnet run`命令或IDE的运行按钮启动项目,并在浏览器中测试。 + +### 10. 调试 +- 使用IDE的调试功能或`dotnet test`命令运行单元测试。 + +### 11. 部署 +- 将项目部署到服务器或云平台。 + +## MVC项目示例 + +```csharp +// Models/Movie.cs +public class Movie +{ + public int Id { get; set; } + public string Title { get; set; } + public string ReleaseDate { get; set; } +} + +// Controllers/MoviesController.cs +public class MoviesController : Controller +{ + private readonly MovieContext _context; + + public MoviesController(MovieContext context) + { + _context = context; + } + + public IActionResult Index() + { + return View(_context.MovieSet.ToList()); + } + + public IActionResult Create() + { + return View(); + } + + [HttpPost] + [ValidateAntiForgeryToken] + public IActionResult Create([Bind("Id,Title,ReleaseDate")] Movie movie) + { + if (ModelState.IsValid) + { + _context.Add(movie); + _context.SaveChanges(); + return RedirectToAction(nameof(Index)); + } + return View(movie); + } +} + +// Views/Movies/Index.cshtml +@model IEnumerable +@foreach (var item in Model) +{ +
  • @item.Title (@item.ReleaseDate)
  • +} \ No newline at end of file diff --git "a/\351\231\206\346\273\242\351\222\260/20241113-\345\210\233\345\273\272\350\247\243\345\206\263\346\226\271\346\241\210.md" "b/\351\231\206\346\273\242\351\222\260/20241113-\345\210\233\345\273\272\350\247\243\345\206\263\346\226\271\346\241\210.md" new file mode 100644 index 0000000..c6b102a --- /dev/null +++ "b/\351\231\206\346\273\242\351\222\260/20241113-\345\210\233\345\273\272\350\247\243\345\206\263\346\226\271\346\241\210.md" @@ -0,0 +1,31 @@ +## 创建解决方案 +1. 使用dotnet new sln命令创建一个新的解决方案文件: +```dotnet new sln -n MyMVCSolution``` +- 这条命令会创建一个名为MyMVCSolution的解决方案。 + +2. 创建MVC项目 +在解决方案目录下创建一个新的MVC项目: +```dotnet new mvc -n MyMVCProject``` +- 这条命令会创建一个名为MyMVCProject的MVC项目。 + +3. 添加项目到解决方案 +将新创建的MVC项目添加到解决方案中: +```dotnet sln add MyMVCProject/MyMVCProject.csproj``` +- 这条命令将MyMVCProject项目添加到MyMVCSolution解决方案。 + +4. 还原依赖项 +使用dotnet restore命令还原解决方案中的所有依赖项: +```dotnet restore``` +- 这条命令会安装项目所需的所有NuGet包。 + +5. 构建解决方案 +构建解决方案以确保所有项目都编译无误: +```dotnet build``` +- 这条命令会编译解决方案中的所有项目。 + +6. 运行MVC项目 +在项目目录下运行MVC项目: +``` + cd MyMVCProject + dotnet run +``` \ No newline at end of file diff --git "a/\351\231\206\346\273\242\351\222\260/20241114-Linux\345\270\270\347\224\250\345\221\275\344\273\244\351\200\237\346\237\245\346\211\213\345\206\214.md" "b/\351\231\206\346\273\242\351\222\260/20241114-Linux\345\270\270\347\224\250\345\221\275\344\273\244\351\200\237\346\237\245\346\211\213\345\206\214.md" new file mode 100644 index 0000000..63af517 --- /dev/null +++ "b/\351\231\206\346\273\242\351\222\260/20241114-Linux\345\270\270\347\224\250\345\221\275\344\273\244\351\200\237\346\237\245\346\211\213\345\206\214.md" @@ -0,0 +1,81 @@ +## 如何登录服务器 +登录服务器命令:ssh root@XXX.XXX 第一次登录会底部要不要接受:输入yes,然后回车 输入密码,输入密码过程,没有任何显示,是正常的现象,只管理密码,然后回车就可以了 + +## 部署静态网站的核心科技 +1. 网页所放位置在如下路径:/var/www/XXX.XXX/index.html + +2. nginx配置文件所放的位置在如下路径:/etc/nginx/conf.d/XXX.XXX.conf + +3. 测试nginx的配置文件有无语法错误,命令如下:nginx -t 如果返回类似ok successful之类的提示,则表明没有语法错误,反之,需要排查语法 + +4. 强制nginx重新加载配置文件命令:nginx -s reload + +## 命令速查 +1. ls +- 作用:列出指定目录下的内容(文件或文件夹),如果没有指定目录,则显示当前目录下内容 +- 语法:ls 目录 +- 常用选项:a,列出所有的内容;l,以列表形式展示内容 +- 常用命令的形式:ls -al +- 常用命令的作用:列出当前目录下所有的内容,包括隐藏的文件和文件夹,并且以列表形式展示,如下所示: +``` +root@soft:~# ls -al +total 60 +drwx------ 7 root root 4096 Nov 8 09:06 . +drwxr-xr-x 18 root root 4096 Nov 7 13:16 .. +-rw------- 1 root root 1377 Nov 8 11:50 .bash_history +-rw-r--r-- 1 root root 743 Nov 7 16:41 .bashrc +drwx------ 5 root root 4096 Nov 8 09:19 .config +drwxr-xr-x 5 root root 4096 Nov 7 16:53 .npm +drwxr-xr-x 8 root root 4096 Nov 7 16:44 .nvm +-rw-r--r-- 1 root root 316 Nov 7 11:42 .profile +drwx------ 2 root root 4096 Nov 7 11:42 .ssh +-rw------- 1 root root 10402 Nov 7 15:54 .viminfo +-rw-r--r-- 1 root root 172 Nov 7 16:41 .zshrc +-rw-r--r-- 1 root root 350 Nov 8 09:06 init_debian.sh +drwxr-xr-x 6 root root 4096 Nov 7 16:45 sprite-cow +``` + +2. cd +- 作用:切换当前目录到指定目录(当前目录也叫工作目录) +- 语法:cd 目录(可以是相对路径、绝对路径) +- 常用命令的形式:cd +- 常用命令的作用:直接回到家目录(root用户登录,就是root用户的家目录) + +3. mkdir +- 作用:创建文件夹 +- 语法:mkdir 要创建的目录所在路径/要创建的目录名称 +- 常用命令的形式:mkdir XXX +- 常用命令的作用:在当前目录中创建名为XXX的文件夹 + +4. rm +- 作用:删除文件夹或者目录,默认情况下,只能删除空目录 +- 语法:rm XXX +- 常用选项:r 递归删除其下所有的内容;f 强制删除(慎用!!!) +- 常用命令的形式:rm XXX +- 常用命令的作用:删除当前目录下名为XXX的文件 + +5. vim +- 作用:编辑文件 +- 语法:vim XXX +- vim几个模式:命令模式、编辑模式(插入模式)、线性命令模式 +- 几个模式之间的切换: + - vim刚进入是命令模式,按字母i进入编辑模式,此时可以输入内容; + - 按Esc键回到命令模式,此时可以输入:wq保存退出,或者:q不保存退出,后面加!表示强制,如:wq!表示强制保存退出,:q!表示不保存退出 + - 线性命令模式是较高级的用法,此处不作介绍 + +6. scp +- 作用:用于传输内容到指定服务器 +- 语法:scp 文件 账号@服务器地址(ip或域名都可以):/xxx/xxx +- 常用选项:r 递归传输目录下所有的内容; +- 常用命令的形式:scp ./xxx.xx root@9ihub.com:/var/www +- 常用命令的作用:传输当前目录下的xxx.xx文件到9ihub.com所对应服务器下的/var/www目录中,并且是以root用法登录 + +7. cp +- 作用:复制文件或文件夹 +- 语法:cp 源文件 目标目录 +- 常用选项:r 递归传输目录下所有的内容 + +8. mv +- 作用:移动文件或文件夹 +- 常用命令的形式:mv abc.xyz abc.xyz.conf +- 常用命令的作用:将当前目录下的abc.xyz文件移动为abc.xyz.conf,实际效果为重命名 \ No newline at end of file -- Gitee