2016-04-30 103 views
2

我正在編寫ASP.NET核心API,我在想如何在控制器中返回視圖。目標是在此頁面上提供文檔。 我曾嘗試是創建一個Controller類,一個返回的ViewResult,如下圖所示:使用ASP.NET Core API返回視圖

[Route("api/[controller]")] 
public class HomeController : Controller 
{ 

    [HttpGet] 
    public IActionResult Get() 
    { 
     return View(); 
    } 
} 

然後,我創建一個視圖/主頁名爲庫一個Index.cshtml簡單的視圖。 當我使用/ api/home啓動應用程序時,它確實會返回內部服務器錯誤(如在瀏覽器的JS控制檯中記錄)。雖然,如果我返回像這樣的隨機ObjectResult:

[HttpGet] 
    public IActionResult Get() 
    { 
     return new ObjectResult(new {bonjour = 1}); 
    } 

它確實會返回正確的數據模型。

有沒有人有關於如何使用ASP.NET Core API工具返回視圖的想法?

+2

不要在有關ASP.NET Core的問題上使用[tag:asp.net]和[tag:asp.net-mvc]。他們是爲舊的ASP.NET框架 – Tseng

回答

10

您需要指定您的視圖的完整路徑,因爲你的動作名稱爲GetIndex

試試這個

[HttpGet] 
public IActionResult Get() 
{ 
    return View("~/Views/Home/Index.cshtml"); 
} 
+0

感謝邁克!有效 ! –

+0

@ChristopherJ。歡迎您,請標記爲解決方案。 –

1

我認爲,如果你定義的類,你也需要做一個路由這對於任何ActionResults如此嘗試添加如下:

[HttpGet("nameOfThisRoute")] 
[Route("nameOfRoute/Get")] 
public IActionResult Get() 
{ 
    return View(); 
} 

所以你的URL將被「API/nameOfRoute /獲取」

更多信息:http://www.ryadel.com/en/custom-routing-method-names-in-asp-net-5-mvc-6/

相關問題