雖然這可能不會回答你的問題只是想指出,這是我的理解,你不需要重寫/子類AccountController類。相反,您需要通過添加具有更高優先級的自己的路由來「覆蓋」Users/Account/Register
路由。爲此,您需要實施IRouteProvider
作爲我們模塊的一部分。由於它是一個IDependency,它將在運行時自動加載和處理。例如:
public class Routes : IRouteProvider
{
public void GetRoutes(ICollection<RouteDescriptor> routes)
{
routes.AddRange(GetRoutes());
}
public IEnumerable<RouteDescriptor> GetRoutes()
{
return new[] {
new RouteDescriptor {
// Make sure to be higher than the default
Priority = ##### PRIORITY HERE (int) ######,
Route = new Route(
"Users/Account/Register",
new RouteValueDictionary {
{"area", "#### YOUR MODULE AREA HERE ####"},
{"controller", "#### YOUR ACCOUNT CONTROLLER HERE ####"},
{"action", "#### YOUR REGISTER ACTION HERE ####"}
},
new RouteValueDictionary(),
new RouteValueDictionary {
{"area", "#### YOUR MODULE AREA HERE ####"}
},
new MvcRouteHandler())
}
};
}
}
謝謝,這就是我最終做的。哦,非常感謝你寫這個模塊。 – winsmith 2011-06-09 08:30:57