[MVC3 / Razor] Impossible de faire un RenderPartial
Salut,
Je travaille sur une petite interface simple en MVC3.
J'ai une entité simple qui doit être modifiable depuis plusieurs objets (en fait il s'agit de l'entité de la table application du membership provider)
Je n'arrive pas à créer une vue qui utilise une vue partielle.
J'ai fait une maquette pour isoler le problème.
Voici son code :
Vue Home/Index
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
@{
ViewBag.Title = "Home Page";
}
<h2>@ViewBag.Message</h2>
<p>
To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>.
</p>
<p>
@Html.RenderPartial("_ToolsIndex", TestPartial.Models.Tool.GetTools())
</p> |
Vue partielle
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
@model IEnumerable<TestPartial.Models.Tool>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table>
<tr>
<th></th>
<th>
name
</th>
</tr>
@foreach (var item in Model) {
<tr>
<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>
<td>
@item.name
</td>
</tr>
}
</table> |
Modèle
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace TestPartial.Models
{
public class Tool
{
public int id { get; set; }
public string name { get; set; }
public static List<Tool> GetTools()
{
List<Tool> toReturn = new List<Tool>();
toReturn.Add(new Tool { id = 1, name = "Un" });
toReturn.Add(new Tool { id = 2, name = "Deux" });
return toReturn;
}
}
} |
Controleur
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace TestPartial.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
return View();
}
public ActionResult About()
{
return View();
}
}
} |
J'obtiens le message suivant :
Citation:
Erreur de compilation
Description : Une erreur s'est produite lors de la compilation d'une ressource requise pour répondre à cette demande. Veuillez consulter ci-dessous les détails relatifs à l'erreur en question, puis modifier votre code source de manière appropriée.
Message d'erreur du compilateur: CS1502: La méthode surchargée correspondant le mieux à 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' possède des arguments non valides
Erreur source:
Ligne 8 : </p>
Ligne 9 : <p>
Ligne 10 : @Html.RenderPartial("_ToolsIndex", TestPartial.Models.Tool.GetTools())
Ligne 11 : </p>
Fichier source: d:\VSTS_DISABLED\TestPartial\TestPartial\Views\Home\Index.cshtml Ligne: 10
J'ai trouvé plein d'exemples qui utilisent renderpartial mais là ça ne fonctionne pas du tout et je ne comprends pas pourquoi.
Pourriez-vous m'aider ?
D'avance merci
Laurent