Ce même code fonctionne bien avec MVC 2 mais ne fonctionne pas dans MVC 3 Razor. Une fois la page chargée, le menu de chargement de HTMLHelper n'est pas chargé dans Razor comme ci-dessous.Sortie rasoir ne fonctionnant pas dans MVC 3 mais travaillant dans MVC 2
Menu codé en dur pour les tests qui ne sont pas sortis sur la page.
using System.Collections.Generic;
using System.Web.Mvc;
using System.Web.Mvc.Html;
using myproject.Extensions;
public static class MenuHelper
{
public static string TabbedMenu(this HtmlHelper helper, IEnumerable<MenuTab> tabs)
{
//I have hard coded menu for testing purpose.
return "<div class='menu-image'><img src='/content/Images/common/on-left.gif' alt='' /></div><div class='on'><a class='over' href='/?Length=4'>Home</a></div><div class='menu-image'><img src='/content/Images/common/on-right.gif' alt='' /></div><a href='/Home/About'>About</a><a href='/Home/Contact'>Contact</a>";
}
}
Ci-dessous le code Razor CSHTML.
@{Html.TabbedMenu
(
new List<MenuTab>
{
MenuTab.Create("Home", "Index", "Home"),
MenuTab.Create("About", "About", "Home"),
MenuTab.Create("Contact", "Contact", "Home")
}
);}
Ok changé cela comme ci-dessous statique HtmlString TabbedMenu publique (cette aide HtmlHelper, IEnumerable onglets) { \t nouvelle HtmlString retour ("MENU HTML ICI CI-DESSUS"); } @ Html.TabbedMenu ( \t nouvelle liste \t { \t \t MenuTab.Create ("Home", "Index", "Home"), \t} ) erreur est inférieure La méthode la mieux surchargée pour 'System.Web.WebPages.WebPageExecutingBase.Write (System.Web.WebPages.HelperResult)' a des arguments non valides ne peut pas convertir de 'groupe de méthodes' en 'System.Web.WebPages.HelperResult' \t c : \ Path myproject –
Pirzada
@user: Supprime les espaces avant le premier '(' ou encapsule tout l'appel: '@ (Html.TabbedMenu (...))' L'analyseur Razor voit cet espace et arrête l'analyse. (Il pense que vous utilisez une propriété) – SLaks
Merci beaucoup. Ça a marché. – Pirzada