我全都,
在previous question中,我询问了如何定义处理以下网址的自定义路由:
http://www.example.com/User/Profile/Edit/{userProfileID}
我有一个User对象和一个UserProfile对象,但只有一个UserController,我希望能够用于对这两个对象的操作。我已经在UserController中有一个名为Edit的方法来处理用户的编辑。但是我还需要一种在UserProfile上进行编辑的方法。我的路由问题的答案是以下路线:
routes.MapRoute(
"ProfileleRoute", // Route name
"User/Profile/{action}/{userProfileID}", // URL with parameters
new { controller = "User", action = "Index" } // Parameter defaults
);
但是考虑到自定义路由,我应该在哪里声明UserProfile的编辑操作,以及应该调用什么?似乎我无法在UserController中编写另一个名为Edit的方法,因为我已经有一个处理用户编辑的方法。
所以我觉得我最终需要两个Edit操作来处理以下路径:“User / Edit”和“User / Profile / Edit”。我该如何解决这个问题?
非常感谢。
答案 0 :(得分:0)
当框架要选择要执行的操作时,首先使用与请求匹配的HttpPost或HttpGet属性检查所需名称的操作,如果不是以这种方式选择操作,则选择与之匹配的任何操作名称。 因此,如果您有两个具有相同名称但没有HttpPost或HttpGet属性的操作,则无法控制操作将会执行。