2013-03-14 91 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