c# - Endpoints.MapControllerRoute 模式含义
问题描述
在这样的模式中分配控制器名称和动作名称有什么用
endpoints.MapControllerRoute(
name:"default",
pattern: "{controller=home}/{action=index}/{id?}"
);
解决方案
像这样的图案
"{controller=home}/{action=index}/{id?}"
告诉 ASP.NET Core 如果 URL 以路径结尾/MyController/MyAction/MyId123
,它应该将请求分派给MyAction
控制器内部的方法MyController
。该方法可能如下所示:
public class MyController {
public IActionResult MyAction(string id) {
// ...
}
}
现在,通过添加=home
and =index
,您给它一个默认值,并有效地将所有未映射到现有控制器和操作的请求与HomeController:Index
方法匹配。
从文档:
路线模板
"{controller=Home}/{action=Index}/{id?}"
:
匹配一个 URL 路径,如
/Products/Details/5
通过标记路径来提取路由值
{ controller = Products, action = Details, id = 5 }
。ProductsController
如果应用程序有一个名为的控制器和一个Details
动作,那么路由值的提取会导致匹配 :public class ProductsController : Controller { public IActionResult Details(int id) { return ControllerContext.MyDisplayRouteInfo(id); } }
{controller=Home}
定义Home
为默认控制器。
{action=Index}
定义Index
为默认操作。中的
?
字符{id?}
定义id
为可选。
推荐阅读
- android - MFP8 中的直接更新甚至无法部署最新的 Web 资源
- sql - SQL Server: Using cursor to loop and insert incremental values
- c++ - 如何用双打专门化模板类?
- git - Resetting a new file in staging area to working directory in Git
- javascript - 如何在文本中捕获 alexa 的数据输出?
- authentication - 我想将时间表插件(用于 Jira)工作日志(每个 REST API)放入谷歌时间表,但我不断收到“需要 401 授权”
- excel - 使用vba删除excel文件的密码
- ruby-on-rails - Is it possible to access attribute that is delegated to another model?
- java - Spring boot application staring failed in IntelliJ
- html - 为什么我不能在没有父不透明度超车的情况下定位这个 HTML 元素?