我新的ASP.NET MVC.we创建这样的“AdminController”控制器,但只有具有管理员的名字来称呼它。 ASP.NET MVC如何处理这个我们不需要用全名来调用控制器?呼叫的Controler不是全名
0
A
回答
1
您在URL中指定的控制器名称与类名称不同,正如操作名称与控制器上的实际方法不同。 MVC在确定需要执行哪些代码时会执行控制器/操作和类/方法之间的内部映射。
通用映射规则是:
- 为控制器,采取控制器名称(
Admin
)和后缀Controller
添加到它,并搜索与该名称(AdminController
)的类。 - 对于操作,取动作名称(
Details
)并在控制器上搜索同名的方法(ActionResult Details() {}
)。
但是,目前MVC支持通过ActionName
属性将操作显式映射到具有不同名称的方法。因此,您可以执行一个名为Edit
的操作,该操作例如映射到方法ActionResult EditUser() {}
。
未来版本的MVC可能还会添加一个类似的ControllerName
属性,该属性允许将特定控制器名称显式映射到特定类。 (实际上,我希望他们这样做,以帮助解决在不同区域提供相同控制器名称的不同实现的问题)
1
这是由使用路由的Asp.Net MVC框架处理的。我们在Global.aspx.cs中定义路由。该路由定义要调用哪个控制器以及针对给定URL执行什么动作,例如
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new {controller = "Home", action = "Index", id = ""}
);
另外Asp.net MVC更喜欢Convention over配置。因此,作为一个约定'家'意味着HomeController。
相关问题
- 1. MVC4 Route as/{controler} - {id}而不是/ {controler}/{id}
- 2. 安全的http呼叫android
- 3. jQuery AJAX呼叫 - 是否可以取消不需要的呼叫?
- 4. pygame.rect是不可呼叫
- 5. ajax呼叫转移安全
- 6. 复杂呼叫的别名
- 7. 呼叫不按下呼叫按钮
- 8. 什么是“按名称呼叫”?
- 9. 这是一条线程不安全的呼叫吗?
- 10. runOnUiThread不呼叫
- 11. 呼叫来电呼叫
- 12. 有多个呼叫签名
- 13. 呼叫的fancybox与ID而不是
- 14. ActionLink的不是呼叫控制器
- 15. 以角度呼叫另一个http呼叫中的http呼叫
- 16. 呼叫使用型号名称为funcion呼叫者
- 17. 斯卡拉流按需呼叫(懒惰)vs按名称呼叫
- 18. 通过名称呼叫vs通过宏扩展呼叫
- 19. 安全的ASP.NET MVC呼叫控制器
- 20. 呼叫应答器的异步呼叫
- 21. http呼叫中的角度http呼叫
- 22. 呼叫R.ap的呼叫太多?
- 23. C#Outlook - 呼叫被拒绝的呼叫
- 24. 通过名称而不是ID来呼叫Wordpress类别
- 25. 不使用UI的呼叫
- 26. 类型错误str是不可呼叫
- 27. HSExposure()模块是不可呼叫
- 28. Appened不与呼叫ID是唯一
- 29. 如何缩小哪个呼叫正在进行完全信任的呼叫?
- 30. Api呼叫请求每小时呼叫限制1个呼叫