diff --git "a/\345\215\242\350\257\227\350\257\255/\347\254\224\350\256\260/20241118-mvc\345\244\204\347\220\206\350\257\267\346\261\202.md" "b/\345\215\242\350\257\227\350\257\255/\347\254\224\350\256\260/20241118-mvc\345\244\204\347\220\206\350\257\267\346\261\202.md" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/\345\215\242\350\257\227\350\257\255/\347\254\224\350\256\260/20241120-mvc\351\205\215\347\275\256\345\220\257\345\212\250.md" "b/\345\215\242\350\257\227\350\257\255/\347\254\224\350\256\260/20241120-mvc\351\205\215\347\275\256\345\220\257\345\212\250.md" new file mode 100644 index 0000000000000000000000000000000000000000..5df1d44a4846522f74d34a67e354c97d601dd5c3 --- /dev/null +++ "b/\345\215\242\350\257\227\350\257\255/\347\254\224\350\256\260/20241120-mvc\351\205\215\347\275\256\345\220\257\345\212\250.md" @@ -0,0 +1,137 @@ +### ASP.NET Core 路由模式与启动配置 +路由模式解析 +路由模式定义了 URL 的结构以及如何将其映射到控制器的操作方法中。ASP.NET Core 默认的路由模式为: + +"{controller=Home}/{action=Index}/{id?}" +路由模式的组成部分 +{controller=Home} +指定控制器的占位符。如果 URL 中未明确指定控制器,则使用 HomeController 作为默认值。 + +{action=Index} +指定操作方法的占位符。如果 URL 中未明确指定操作方法,则使用 Index 作为默认值。 + +{id?} +表示一个可选的参数,占位符为 id,可以传递到控制器方法中。 + +控制器中使用路由参数 +路由参数与控制器方法中的参数名对应,以下是一个简单的示例: + +using Microsoft.AspNetCore.Mvc; + +namespace MyFirstMvc.Controllers +{ + public class HomeController : Controller + { + [HttpGet] + public IActionResult Index(int id) + { + var model = GetModelById(id); + return View(model); + } + + private MyModel GetModelById(int id) + { + return new MyModel { Id = id, Name = "示例" }; + } + } + + public class MyModel + { + public int Id { get; set; } + public string Name { get; set; } + } +} +URL 请求示例 +当用户访问 http://localhost:5000/Home/Index/5 时: + +控制器: 匹配到 HomeController。 +操作方法: 匹配到 Index 方法。 +参数: 路由参数 id 的值为 5,并传递到 Index 方法中。 +参数名的匹配规则 +在路由模式中,{id?} 定义了一个可选参数,其名称为 id。控制器方法的参数名必须与此占位符一致,例如: + +如果路由模式为 {productId?},则方法参数名应为 productId。 + +参数名不匹配时,将导致请求无法正确解析参数。 + +总结 +路由模式 "{controller=Home}/{action=Index}/{id?}" : + +允许通过 URL 直接访问控制器和方法。 +参数名需要与占位符一致,避免请求解析问题。 +ASP.NET Core launchSettings.json 配置详解 +launchSettings.json 文件位于 ASP.NET Core 项目的 Properties 文件夹中,用于配置开发环境下的启动选项。以下是你的 launchSettings.json 文件解析: + +{ + "profiles": { + "http": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "http://localhost:5254", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "https://localhost:7023;http://localhost:5254", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} +配置字段解析 +profiles +每个配置文件(如 http 和 https)对应一个启动选项,可用于指定不同的启动模式。 + +commandName +指定启动方式。 +"Project":表示以当前项目为启动对象,常用于开发和调试。 +"IISExpress":表示使用 IIS Express 启动。 +dotnetRunMessages +控制是否在控制台显示 dotnet run 的详细信息。 +true:启用(推荐用于调试)。 +false:关闭。 +launchBrowser +是否自动打开浏览器访问启动 URL。 +true:自动打开。 +false:不打开。 +applicationUrl +定义应用程序启动时绑定的 URL 地址。 +可配置多个地址,用分号分隔。 +示例: +"http://localhost:5254":通过 HTTP 协议访问。 +"https://localhost:7023;http://localhost:5254":支持 HTTPS 和 HTTP。 +environmentVariables +设置运行时的环境变量。 +常用环境变量: +"ASPNETCORE_ENVIRONMENT":指定环境类型。 +"Development":开发环境,通常启用详细错误信息和调试功能。 +"Production":生产环境,启用优化和更高的安全性。 +配置解读 +HTTP 配置 +使用 HTTP 协议启动。 +默认地址为 http://localhost:5254。 +启动时自动打开浏览器。 +运行环境为 Development。 +HTTPS 配置 +支持 HTTPS 和 HTTP。 +默认地址为: +https://localhost:7023 +http://localhost:5254 +启动时自动打开浏览器。 +运行环境为 Development。 +使用场景 +调试与开发:快速配置和启动调试环境。 +环境区分:通过 ASPNETCORE_ENVIRONMENT 区分开发、测试和生产环境。 +本地测试:设置 URL 和端口号,避免冲突或重复。 +总结 +launchSettings.json 提供了灵活的启动选项配置,快速启动和调试 ASP.NET Core 应用程序: + +使用多个协议(HTTP 和 HTTPS)。 +设置开发环境变量。 +自动打开浏览器提高开发效率。 \ No newline at end of file