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
Vous devez vous connecter pour publier un commentaire.
Vous pouvez envoyer une requête HTTP à votre site Web API contrôleur à partir de l'intérieur de la ASP.NET MVC contrôleur:
Aussi si vous pouvez prendre avantage de la .NET 4.5 async/await, il est fortement recommandé de le faire pour éviter le blocage des appels:
Lire ici sur la façon d'utiliser le Rasoir moteur d'affichage à l'intérieur de votre Web API contrôleur. La partie intéressante est l'aide de l' RazorEngine package NuGet faire le gros du travail.
La base du lien fourni par twoflower est d'avoir vos gestionnaires de créer et de retourner une instance d'une coutume IHttpActionResult mise en œuvre. Un exemple simplifié ci-dessous: