我们可以在控制器中拥有虚拟操作项吗?



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

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((?

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

我用 ASP.NET 核心MVC成功测试了它。但是,您的代码中有一个拼写错误:从lambda中删除"return"。

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

最新更新