www.mysite.com/Stuff 没有指向操作方法。它寻找一个以 action 命名的StuffController
控制器Index
。这完全取决于您在global.asax
文件中定义的路线。
添加以下路由以将操作放入 HomeController
routes.MapRoute(
name: "Stuff",
url: "Stuff/{id}",
defaults: new {controller = "Home", action = "Stuff", id = UrlParameter.Optional }
);
要将 Stuff 操作放在不同的控制器中,请使用此路线
routes.MapRoute(
name: "Stuff",
url: "Stuff/{id}",
defaults: new {controller = "Your Controller", action = "Stuff", id = UrlParameter.Optional }
);
编辑:要回答您关于设计的其他问题,我认为在一个控制器中执行操作并在另一个控制器中执行 url 是一种不好的设计实践,因为您不妨将操作方法作为 url 放置在您想要的控制器中。在我看来,这没有意义。虽然有时可能取决于业务。