ASP.NEt MVC utilisant l'API Web pour retourner une vue Razor

Comment rendre la Vue retournée par le contrôleur et généré par le Rasoir d'obtenir les données à partir de l'api je veux garder le moteur de rasoir de la vue et de l'utilisation de l'api
l'original mvc contrôleur retourne la vue avec les données en paramètre, et maintenant je veux les données de l'api

MVC contrôleur

public class ProductController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

Api Contrôleur

public class ProductsController : ApiController
{
    private ApplicationDbContext db = new ApplicationDbContext();

    //GET api/Products
    public IEnumerable<Product> GetProducts()
    {
        return db.Products;
    }
}

Modèle:

@model IEnumerable<WebApplication2.Models.Product>

@{
ViewBag.Title = "Index";
}

<h2>Index</h2>

<p>
@Html.ActionLink("Create New", "Create")
</p>
<table class="table">
<tr>
    <th>
        @Html.DisplayNameFor(model => model.Name)
    </th>
    <th>
        @Html.DisplayNameFor(model => model.Category)
    </th>
    <th>
        @Html.DisplayNameFor(model => model.Price)
    </th>
    <th></th>
</tr>

@foreach (var item in Model) {
<tr>
    <td>
        @Html.DisplayFor(modelItem => item.Name)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.Category)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.Price)
    </td>
    <td>
        @Html.ActionLink("Edit", "Edit", new { id=item.Id }) |
        @Html.ActionLink("Details", "Details", new { id=item.Id }) |
        @Html.ActionLink("Delete", "Delete", new { id=item.Id })
    </td>
</tr>
}
</table>

source d'informationauteur user3353484