我们可以在Controller中拥有虚拟操作项吗?

时间:2017-07-31 09:05:45

标签: asp.net-mvc

考虑这种情况,有一个基类

public abstract class BaseController:Controller
{
    public virtual ActionResult  Index() => View();
}

显然,由于它是抽象的,我们无法获得基类的视图。以下是派生类:

public class MyController: BaseController
{
    // everything but no Index()
}

public class AnotherController:BaseController
{
    // again all except Index()
}
  1. 如果我们拨打电话 http://loclhost:666/My/Index 派生类 控制器但基类索引,它会正确使用视图 衍生类?
  2. 如果那是不可能的,那么我们如何在避免的同时修复它 重复所有具体控制器类的Index()?

1 个答案:

答案 0 :(得分:2)

是的,它就是这样的。您的代码是正确的,ASP.NET MVC将考虑基类。

我使用ASP.NET Core MVC成功测试了它。但是你的代码中有一个拼写错误:删除"返回"来自你的lambda。

public virtual ActionResult  Index() => View();