2017-03-29 2 views
0

Je suis novice en utilisant ASP.net sur ubuntu avec mono, j'ai plusieurs sites qui fonctionnent très bien en utilisant MVC5, mais j'ai récemment migré un projet et j'ai trouvé que les formulaires référençant des énumérations à partir d'une liste PCL référencée provoquent le blocage des vues. Voici mon appel EnumDropDownList qui fonctionne bien sur un hôte Windows.Apache2 ASP MVC Razor se bloque en faisant référence à PCL enum pour dropdown

<div class="form-group"> 
@Html.LabelFor(m => m.Type, new { @class = "control-label" }) 
@Html.EnumDropDownListFor(m => m.Type, new { @class = "form-control" }) 
</div> 

Lors de l'affichage dans le navigateur sur l'hôte ubuntu mais je reçois l'erreur suivante

System.InvalidOperationException 
The view found at '~/Views/portal/productgroup.cshtml' was not created. 

supplémentaires la trace de la pile est

 at System.Web.Mvc.BuildManagerCompiledView.Render (System.Web.Mvc.ViewContext viewContext, System.IO.TextWriter writer) [0x00061] in <cc73190bab9d435c831510ff295c572a>:0 
    at System.Web.Mvc.ViewResultBase.ExecuteResult (System.Web.Mvc.ControllerContext context) [0x00080] in <cc73190bab9d435c831510ff295c572a>:0 
    at System.Web.Mvc.ControllerActionInvoker.InvokeActionResult (System.Web.Mvc.ControllerContext controllerContext, System.Web.Mvc.ActionResult actionResult) [0x00000] in <cc73190bab9d435c831510ff295c572a>:0 
    at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive (System.Collections.Generic.IList`1[T] filters, System.Int32 filterIndex, System.Web.Mvc.ResultExecutingContext preContext, System.Web.Mvc.ControllerContext controllerContext, System.Web.Mvc.ActionResult actionResult) [0x0000b] in <cc73190bab9d435c831510ff295c572a>:0 
    at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive (System.Collections.Generic.IList`1[T] filters, System.Int32 filterIndex, System.Web.Mvc.ResultExecutingContext preContext, System.Web.Mvc.ControllerContext controllerContext, System.Web.Mvc.ActionResult actionResult) [0x0004f] in <cc73190bab9d435c831510ff295c572a>:0 

Est-il possible que je dois faire référence l'assemblage externe dans mon contrôleur ou ma vue rasoir? Est-ce un problème commun ou pourrait-il y avoir quelque chose de concret?

Pour référence, PCL contient du code partagé à utiliser entre mon site et une application mobile construite avec Xamarin. Le PCL a le profil .NET framework 4.5 en plus de tous les Xamarin etc. Le code est entièrement opérationnel sur windows et fonctionnera si je supprime les références à l'enum stockées dans le PCL.

Toute aide serait grandement appréciée.

Répondre

0

Après beaucoup de recherches et de tests, j'ai réussi à résoudre mon problème, je vais vous expliquer le processus maintenant. J'ai basculé vers MVCViews compilé dans ma configuration de projet et j'ai remarqué qu'ils n'ont pas réussi à compiler en ne référençant pas System.Runtime dans mon web.config, j'ai ajouté cette référence et mes vues ont été compilées, en testant cela localement cela a bien fonctionné mais a échoué avec le même problème sur mono. Ensuite, j'ai commencé à me demander si mono avait une version de System.Runtime donc j'ai installé le paquet System.Runtime de nuget, j'ai remarqué que lors de la construction de mon projet, il n'a pas été ajouté à mon dossier bin et était également absent de mon références de projet même si Nuget l'a répertorié comme installé dans Visual Studio.

Enfin, je viens de copier le System.Runtime.dll dans mon dossier bin à distance et cela a résolu mon problème. Il semble que System.Runtime doit être présent n'importe quel dossier de bun si vous comptez dessus. (Ce que vous faites probablement!)

J'espère que cela aide quelqu'un car j'ai passé BEAUCOUP d'heures essayant de trouver de l'aide sur ceci!