diff --git "a/\350\202\226\347\277\224/\347\254\224\350\256\260/2024-1111-\345\210\233\345\273\272mvc\346\226\207\344\273\266.md" "b/\350\202\226\347\277\224/\347\254\224\350\256\260/2024-1111-\345\210\233\345\273\272mvc\346\226\207\344\273\266.md" new file mode 100644 index 0000000000000000000000000000000000000000..2f6eed4c8604ae4ca916b32f2a28c6744898f373 --- /dev/null +++ "b/\350\202\226\347\277\224/\347\254\224\350\256\260/2024-1111-\345\210\233\345\273\272mvc\346\226\207\344\273\266.md" @@ -0,0 +1,58 @@ +# 创建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项目示例 \ No newline at end of file diff --git "a/\350\202\226\347\277\224/\347\254\224\350\256\260/2024-1113-\345\210\233\345\273\272\350\247\243\345\206\263\346\226\271\346\241\210.md" "b/\350\202\226\347\277\224/\347\254\224\350\256\260/2024-1113-\345\210\233\345\273\272\350\247\243\345\206\263\346\226\271\346\241\210.md" new file mode 100644 index 0000000000000000000000000000000000000000..c6b102a5bbe4bf0d1cb57098631294defc8b2eba --- /dev/null +++ "b/\350\202\226\347\277\224/\347\254\224\350\256\260/2024-1113-\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/\350\202\226\347\277\224/\347\254\224\350\256\260/2024-1114-\346\216\247\345\210\266\345\231\250.md" "b/\350\202\226\347\277\224/\347\254\224\350\256\260/2024-1114-\346\216\247\345\210\266\345\231\250.md" new file mode 100644 index 0000000000000000000000000000000000000000..4b187dd7048cc825a1b24b9e9889698aebc1aa60 --- /dev/null +++ "b/\350\202\226\347\277\224/\347\254\224\350\256\260/2024-1114-\346\216\247\345\210\266\345\231\250.md" @@ -0,0 +1,130 @@ +# 创建新的控制器、文件夹和视图文件 + +## 1. 创建新控制器 + +在 ASP.NET Core MVC 中,控制器用于处理用户请求并返回视图或数据。每个控制器类通常位于 `Controllers` 文件夹中,继承自 `Controller` 类。 + +控制器的命名规则通常是:**控制器名称 + Controller**,例如:`HomeController`、`ProductController`。 + +下面用`HomeController`举例子 + +### 示例代码: + +```csharp +using Microsoft.AspNetCore.Mvc; // 记得引用 Microsoft.AspNetCore.Mvc 命名空间 + +namespace MyFirstMvc.Controllers +{ + public class HomeController : Controller // 继承自 Controller 基类 + { + public IActionResult Index() + { + return View(); // 返回 Index 视图 + } + + public IActionResult About() + { + return View(); // 返回 About 视图 + } + } +} +``` + +### 解释: + +- **HomeController**:这是新创建的控制器类,继承自 `Controller` 类。记得在文件顶部引用 `Microsoft.AspNetCore.Mvc` 命名空间,否则无法使用 `Controller` 类。 +- **Index** 和 **About** 方法:这两个方法是控制器的动作(Action),分别用于响应 `/Home/Index` 和 `/Home/About` 请求。 +- **return View();**:表示返回视图,默认查找名为 `Index.cshtml` 和 `About.cshtml` 的视图。 + +## 2. 创建视图文件夹和视图文件 + +视图是用户最终看到的页面。通常情况下,视图文件存放在 `Views` 文件夹中,按照控制器名称组织。 + +### 步骤: + +1. 在 `Views` 文件夹中创建一个新的文件夹,命名为与控制器名称相同的名字(例如:`Home`)。 +2. 在 `Views/Home` 文件夹中,创建与控制器方法同名的视图文件(例如:`Index.cshtml` 和 `About.cshtml`)。 + +### 示例文件夹和文件结构: + +``` +MyFirstMvc +│ +├── Controllers +│ └── HomeController.cs +│ +└── Views + └── Home + ├── Index.cshtml + └── About.cshtml +``` + +### 视图文件示例: + +#### `Views/Home/Index.cshtml` 文件内容: + +```html +@{ + Layout = "_Layout"; // 使用布局视图 +} + +

欢迎来到 HomeController 的 Index 页面

+

这是 HomeController 中的 Index 方法返回的视图。

+``` + +#### `Views/Home/About.cshtml` 文件内容: + +```html +@{ + Layout = "_Layout"; // 使用布局视图 +} + +

关于页面

+

这是 HomeController 中的 About 方法返回的视图。

+``` + +### 解释: + +- **`@{ Layout = "_Layout"; }`**:这行代码表示当前视图使用 `Views/Shared/_Layout.cshtml` 作为布局视图,布局文件通常用于放置网站的头部、导航和底部等共享部分。 +- **视图内容**:每个视图文件显示与控制器方法对应的内容。在 `Index.cshtml` 中,显示的是 `Index` 页面的内容;在 `About.cshtml` 中,显示的是 `About` 页面的内容。 + +## 3. 配置控制器和视图之间的连接 + +### 步骤: + +1. 在控制器方法中使用 `return View();` 返回视图。 +2. 如果视图文件夹和文件名与控制器和方法名称一致,MVC 会自动找到相应的视图文件。 + +例如,在 `HomeController` 中: + +```csharp +public IActionResult Index() +{ + return View(); // 自动查找 Views/Home/Index.cshtml +} + +public IActionResult About() +{ + return View(); // 自动查找 Views/Home/About.cshtml +} +``` + +### 解释: + +- **`return View();`**:在没有显式指定视图名称的情况下,ASP.NET Core MVC 会自动查找与当前控制器方法同名的视图文件。 + - `Index` 方法会查找 `Views/Home/Index.cshtml`。 + - `About` 方法会查找 `Views/Home/About.cshtml`。 + +## 4. 运行项目并测试 + +在创建好控制器和视图之后,可以运行项目并通过浏览器访问新创建的页面。 + +- 访问 `/Home/Index` 应该会显示 `Views/Home/Index.cshtml` 的内容。 +- 访问 `/Home/About` 应该会显示 `Views/Home/About.cshtml` 的内容。 + +## 5. 总结 + +- **控制器**:处理请求并返回视图。控制器的文件通常放在 `Controllers` 文件夹中。就像是网站的“导游”,它会根据用户的需求指引你到正确的页面。 +- **视图**:展示给用户的页面。视图文件放在 `Views` 文件夹中,并按照控制器名称组织。就像是展示给用户的网页内容,是你在浏览器中看到的部分。 +- **文件命名约定**:控制器文件以 `Controller` 结尾,视图文件与控制器方法同名。就像是给控制器和视图起名字的规范,帮助系统知道哪个控制器和哪些视图是相对应的。 +- **布局视图**:可以使用 `_Layout.cshtml` 来定义网站的公共布局部分(如头部、导航、底部等)。就像是网页的“模板”,确保每个页面都有相同的头部、导航和底部,让网站看起来一致而不重复。 \ No newline at end of file