2016-04-30 24 views
2

ASP.NET Core APIを作成していますが、コントローラでViewをどのように返すことができるのか不思議でした。目標は、このページのドキュメントを提供することです。私が試してみました何 は、以下のようにするViewResultを返すControllerクラスを作成することです。そして、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

あなたのアクション名がないIndex

私はあなたがクラスのルートを定義する場合にも行う必要があると考え、この

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

ありがとうマイク!出来た ! –

+0

@ChristopherJ。歓迎します。解決策としてマークしてください。 –

1

を試してみてくださいGetあるので、あなたは、あなたのビューへのフルパスを指定する必要がありますActionResultsのいずれかのために、これはそう下記を追加してみてください:

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

ので、あなたのURLは "API/nameOfRoute/GET" になります

詳細情報:http://www.ryadel.com/en/custom-routing-method-names-in-asp-net-5-mvc-6/

関連する問題