0
假設我有很多Controllers
,並且很多Controllers
共享Action
。共享這些常見的Actions
以消除重複代碼的最佳方式是什麼?我知道ASP.NET MVC:如何覆蓋父控制器方法
一種方法是將這些共同Actions
重構爲父母abstract Controller
,像這樣..
public abstract class BaseController : Controller {
//handles common help page for all controllers
public ActionResult Help(string helpTopic) {
..open help page..
return View(page);
}
}
//now Controller1 and Controller2 has the help page for free!
public class Controller1: BaseController {
}
public class Controller2: BaseController {
}
但是,如果我試圖內的任何子控制器像這樣的覆蓋Help
行動..
//customized help page for Controller1
public class Controller1: BaseController {
public new ActionResult Help(string helpTopic) {
.. my own customized help page..
return View(page);
}
}
我會得到錯誤The current request for action 'Help' on controller type 'Controller1' is ambiguous between....
那麼如何重寫父控制器方法?