我新的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. jQuery AJAX呼叫 - 是否可以取消不需要的呼叫?
- 3. runOnUiThread不呼叫
- 4. 什么是“按名称呼叫”?
- 5. 呼叫来电呼叫
- 6. 有多个呼叫签名
- 7. 呼叫的fancybox与ID而不是
- 8. ActionLink的不是呼叫控制器
- 9. 斯卡拉流按需呼叫(懒惰)vs按名称呼叫
- 10. C#Outlook - 呼叫被拒绝的呼叫
- 11. http呼叫中的角度http呼叫
- 12. Appened不与呼叫ID是唯一
- 13. 类型错误str是不可呼叫
- 14. HSExposure()模块是不可呼叫
- 15. 如何缩小哪个呼叫正在进行完全信任的呼叫?
- 16. Api呼叫请求每小时呼叫限制1个呼叫
- 17. 呼叫
- 18. 呼叫
- 19. 是否安全地中断似乎挂断的dcommit呼叫?
- 20. IDispatchMessageInspector :: AfterReceiveRequest呼叫服务的名称
- 21. 呼叫请求/按名称呼叫Lisp解释器策略的开销
- 22. 使用呼叫活动而不登录近期呼叫
- 23. 在AJAX呼叫之后,下一个AJAX呼叫不起作用
- 24. std :: binary_function - 呼叫不匹配?
- 25. 呼叫不同jQuery函数
- 26. EasyNetQ不呼叫订户
- 27. 呼叫时,功能不respondong
- 28. onPostExecute回调不呼叫invalidateOptionsMenu
- 29. 呼叫功能不工作
- 30. SipAudioCall.endCall不拒绝呼叫