2013-03-14 94 views
2

我的基本控制器方法没有得到执行。以下是我的基础控制器。基本控制器方法

public abstract class ReportServiceBaseController : Controller 
{ 
    protected ReportServiceBaseController(); 

    [HttpPost] 
    public JsonResult LoadDocumentInfo(LoadDocumentInfoRequest request); 

    [HttpPost] 
    public JsonResult LoadDocumentMapInfo(LoadDocumentMapInfoRequest request); 
} 

下面是我得到的控制器:

public class ReportController : ReportServiceBaseController 
{ 
    protected override PerpetuumSoft.Reporting.WebViewer.Server.ReportServiceBase CreateReportService() 
    { 
     return new ServiceClass(); 
    } 

    [HttpPost] 
    public JsonResult LoadDocumentInfo(LoadDocumentInfoRequest request) 
    { 
     return base.LoadDocumentInfo(request); 
    } 
} 

如果我从派生类中删除LoadDocumentInfo方法则没有得到调用。当我在派生类中添加同名名称的方法时,它正在调用

请帮忙。

+4

该方法是否在基类中实际实现?我看到的只是一个原型。 – 2013-03-14 08:07:46

+0

其实我正在使用sharpshooter报告工具。 @PoadDocumentInfo方法在PerpetuumSoft.Reporting.WebViewer.Server.Mvc.dll中实现。 – user1557847 2013-03-14 09:34:56

回答

2

您的基类实现是空的 - 但它也意味着代码不会编译 - 因为没有实现的方法必须标记为abstract

此外,派生控制器中的方法必须标记为override

阅读本文以供参考:http://msdn.microsoft.com/en-us/library/ebca9ah3(v=vs.110).aspx

+0

其实我正在使用sharpshooter报告工具。 @PoadDocumentInfo方法在PerpetuumSoft.Reporting.WebViewer.Server.Mvc.dll中实现 – user1557847 2013-03-14 10:05:12