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
Vue partielle
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Modèle
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Controleur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; } } }
J'obtiens le message suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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'ai trouvé plein d'exemples qui utilisent renderpartial mais là ça ne fonctionne pas du tout et je ne comprends pas pourquoi.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
Pourriez-vous m'aider ?
D'avance merci
Laurent
Partager