2017-08-14 72 views
0

我在c#web api Core 1.1中擁有以下基本控制器。從Core Web API返回自定義對象

[Produces("application/json")] 
[Route("api/[controller]")] 
public class TestResultsController : Controller 
{ 
    // GET: api/TestResults 
    [HttpGet] 
    public IEnumerable<string> Get() 
    { 
     return new string[] { "test1", "test2" }; 
    } 

    [HttpGet("getresults")] 
    public IActionResult GetResults() 
    { 
     try 
     { 
      var output = new GroupResult 
      { 
       Name = "Test", 
       Number = 1 
      }; 

      // IEnumerable<GroupResult> output = TestQueries.GetTestResults(); 

      return Ok(output); 
     } 
     catch (Exception ex) 
     { 
      return NotFound("Invalid Result: " + ex.Message); 
     } 
    } 

    // GET: api/TestResults/5 
    [HttpGet("{id}", Name = "Get")] 
    public string Get(int id) 
    { 
     return "value"; 
    } 

    // POST: api/TestResults 
    [HttpPost] 
    public void Post([FromBody]string value) 
    { 
    } 

    // PUT: api/TestResults/5 
    [HttpPut("{id}")] 
    public void Put(int id, [FromBody]string value) 
    { 
    } 

    // DELETE: api/ApiWithActions/5 
    [HttpDelete("{id}")] 
    public void Delete(int id) 
    { 
    } 
} 

的GetResults方法是我有,GroupResult是在.NET 4.5.2創建了一個基本類的問題之一,我引用類在溶液中。當我運行本地主機:xxxx/api/testresults/getresults我得到500錯誤無效的服務器錯誤,它看起來像它甚至沒有打我的方法,因爲我有調試設置。當我將類創建註釋掉並將其更改爲字符串的ienumerable時,它可以正常工作嗎?

有我丟失的東西...

歡呼

+0

聽起來像一個路由問題 –

+0

只是基本的路由設置,在startup.cs app.UseMvc,然後你看到的控制器類。 –

回答

-1

OK - 添加招搖到項目,從這個我可以看到該方法被正確地列出,但顯示內部服務器錯誤從IIS 500切換快遞到運行IIS的項目,我可以看到dotnet.exe窗口。在調用該方法後,顯示消息顯示無法找到frameworkmodel.dll(文件無效),這是另一個針對框架4.6.1的解決方案。讀完這個之後,我將這個解決方案的目標框架從.net core 1.1改成了.net core 1.0,運行它,現在這個方法正在被觸發,雖然我現在正在得到system.runtime.serialization.dll沒有找到: - )

+0

這應該是對原始問題的編輯,因爲這不是一個解決方案,而只是更進一步。 –

+0

最終重寫了原始的dll,所以它們是核心的,因爲它們是基本的,並且解決了它,但只能使用核心1.0而不是1.1 –

相關問題