Comment puis-je faire les constructeurs d'entrée (MVC Contrib) fonctionnent avec Spark View Engine?

StackOverflow https://stackoverflow.com/questions/1750242

Question

Aujourd'hui, j'ai passé trois bonnes heures à essayer de convertir le projet MvcContrib.Samples.InputBuilders, inclus dans MVC Contrib pour le faire fonctionner avec rel="nofollow Spark Voir moteur, mais jusqu'à présent, n'a pas pu le faire.

Quelqu'un at-il une idée de pourquoi ces deux tout simplement pas se entendre?

Les changements que j'ai fait

InputForm.spark:

<viewdata model="SampleInput" />
!{Html.InputForm()}

Global.asax.cs:

...
protected void Application_Start() {
    RegisterRoutes(RouteTable.Routes);
    InputBuilder.BootStrap();
    ViewEngines.Engines.Clear();
    ViewEngines.Engines.Add(new SparkViewFactory());
}

Web.config:

...
<spark>
    <compilation debug="true"/>
    <pages automaticEncoding="true">
        <namespaces>
            <add namespace="System"/>
            <add namespace="System.Collections.Generic"/>
            <add namespace="System.Linq"/>
            <add namespace="System.Web.Mvc"/>
            <add namespace="System.Web.Mvc.Ajax"/>
            <add namespace="System.Web.Mvc.Html"/>
            <add namespace="System.Web.Routing"/>
            <add namespace="MvcContrib.UI.InputBuilder"/>
            <add namespace="MvcContrib.UI.InputBuilder.Views"/>
            <add namespace="Web.Models"/>
        </namespaces>
    </pages>
</spark>

(je copiais les trois derniers namespaces de l'exemple de projet.)

erreurs que je reçois

En fonction de l'ordre dans lequel Spark configuration I / InputBuilder dans Global.asax.cs, je reçois deux exceptions différentes.

Si je suis InputBuilder d'installation, puis Spark (code ci-dessus):

  

erreur CS1061:   « System.Web.Mvc.HtmlHelper » ne fonctionne pas   contiennent une définition pour « InputForm »   et aucune méthode d'extension « InputForm »   l'acceptation d'un premier argument de type   « System.Web.Mvc.HtmlHelper » pourrait être   trouvé (vous manque une aide de   directive ou une référence d'assemblage?)

Si je première étincelle d'installation, puis InputBuilder:

  

Le point de vue « InputForm » ou son maître   Ne peut être trouvé. Le suivant   endroits ont été fouillés:

     

~ / Vues / Accueil / InputForm.aspx

     

~ / Vues / Shared / InputForm.aspx

     

~ / Vues / InputBuilders / InputForm.aspx

     

~ / Vues / Accueil / InputForm.ascx

     

~ / Vues / Shared / InputForm.ascx

Était-ce utile?

La solution

Changement input.spark à:

<use namespace="MvcContrib.UI.InputBuilder"/>
<use namespace="MvcContrib.UI.InputBuilder.Views"/>
<add namespace="Web.Models"/>
<viewdata model="SampleInput" />
!{Html.InputForm()}

Ajout de web.config ne fonctionne pas dans Spark. Vous pouvez utiliser _global.spark à la place.

Il y a aussi un autre problème. Dans Spark stable, SparkView propriété Html est de type HtmlHelper, pas HtmlHelper<TModel>. fonction Html.InputForm() ne fonctionne que pour HtmlHelper<TModel>, vous devrez télécharger la source Spark et utiliser version de développement, car il a été changé récemment. Vous pouvez également télécharger des sources stables et changer vous-même. Voici quelques informations:

http://groups.google .com / groupe / étincelles dev / browse_thread / fil / 618bd44a94368d22 / f7df24e52924f4dc? show_docid = f7df24e52924f4dc

Autres conseils

Votre sur la bonne voie avec la mise en place des constructeurs d'entrée, puis le moteur de vue étincelle. Vous pouvez voir à partir du fichier source à partir MvcContrib que vous avez besoin ce MvcContrib.UI.InputBuilder.Views d'espace de noms défini pour votre point de vue pour faire référence aux Extentions des constructeurs d'entrée.

http: // github .com / MvcContrib / MvcContrib / blob / maître / src / MvcContrib / UI / InputBuilder / Vues / HtmlExtensions.cs

J'ai écrit les constructeurs d'entrée, mais je ne sais pas assez sur le moteur de vue étincelle pour savoir pourquoi il ne résout pas la référence aux méthodes de extention pour les constructeurs d'entrée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top