2017-10-06 93 views
0

我正在使用Castle Windsor作爲DI並使用reposity來訪問和實現數據層。 由於我已經在我的倉庫中實現了所有的數據訪問層,現在可以在我的API控制器中調用這些方法了。然而,當我這樣做,我收到錯誤消息:如何在MVC中的控制器API中調用Void方法模型?

enter image description here

從回購的方法是如下:

public void CreateReport(TReportHeaderModel model) 

     { 

      using (var connection = new TReportEntitiesConnection()) 
      { 

       connection.THeader.Add(new THeader() 
       { 

        ClientID=model.ClientID, 
        ID=model.ID, 
        THeaderTitle=model.THeaderTitle, 
        RowNumber=model.RowNumber 

       }); 


       foreach (var d in model.TReports) 
       { 
        connection.TReport.Add(new TReport() 
        { 

         ID=d.ID, 
         TReportName=d.TReportName, 
         URL=d.URL, 
         RowNumber=d.RowNumber, 



        }); 

       } 

       connection.SaveChanges(); 


      } 



       throw new NotImplementedException(); 
     } 

,當我將其移動到我的API控制器,因爲我要通過這些在HTTP JSON格式:

[HttpPost] 
    public CreateReport([FromBody] TReportHeaderModel model) //Method must have a return type 

    { 


     try 
     { 
      _tReportingService.CreateReport(model); 

      return new ActionResultModel() //return void, must not be followed by object expression 
      { 
       Success = true, 
       Message = "Report Successfully Created." 
      }; 

     } 


     catch (Exception ex) 

     { 
      return new ActionResultModel() 
      { 
       Success = false, 
       Message = "Report not created.", 
       Obj=ex.Message 

      }; 


     } 


    } 
+0

函數需要返回類型。在你的情況,只需將其更改爲'公共ActionResultModel CreateReport([FromBody] TReportHeaderModel模型)''。 –

+0

我沒有意識到我錯過了它。非常感謝!如果你在帖子中發佈你的答案,我將確保投票。 –

回答

0

您可以使用dynamic這裏或模型類,它不是一個void它是一個功能,因爲它的回報是一種價值。

[HttpPost] 
    public dynamic CreateReport([FromBody] TReportHeaderModel model) //Method must have a return type 

    { 
} 
1

你的方法應該有一個返回類型按照標準,在C#

[HttpPost] 
public ActionResult CreateReport([FromBody] TReportHeaderModel model) //Method must have a return type 
{ 
    // Body 
} 
相關問題