1

我都,

上一个问题中,我询问了如何定义自定义路由来处理以下 URL:

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 的方法,因为我已经有一个处理用户编辑的方法。

所以我觉得我最终需要两个编辑操作来处理以下路由:“用户/编辑”和“用户/配置文件/编辑”。我该如何解决这个问题?

非常感谢。

4

1 回答 1

0

当框架要选择要执行的操作时,首先检查具有与请求匹配的 HttpPost 或 HttpGet 属性所需的名称的操作,如果没有以这种方式选择操作,则选择与名称匹配的任何操作。因此,如果您有两个具有相同名称且没有 HttpPost 或 HttpGet 属性的操作,您将无法控制操作将被执行。

于 2010-11-02T18:34:43.560 回答