2008-10-21 9 views
1

J'ai implémenté la classe VirtualPathProvider pour conserver toutes mes vues dans la base de données au lieu de FileSystem du serveur web.VirtualPathProvider avec ASP.Net MVC

Il semble que MVC demande correctement la page ASPX à partir de la base de données, mais ne peut pas demander les fichiers .cs de codebehind et renvoie l'erreur comme étant incapable de charger le fichier de classe code-behind.

Ce virtuslPathProvider fonctionne comme un charme avec un formulaire Web normal.

Y a-t-il des changements spécifiques que je devrai apporter au framework MVC ou à d'autres choses?

Merci & Cordialement, Ajay

+0

Ne pas répondre à votre question, mais me demandais: pourquoi voulez-vous votre point de vue dans la base de données? – Paco

+0

En appuyant la question de Paco .... – yfeldblum

+0

Parce que si vous faites assez de "points" de vue (c'est-à-dire que vous jetez quelques variables en HTML), sur beaucoup de projets, cela en fait le genre de chose qui peut/doit être édité par des personnes extérieures à l'équipe de développement. Si elles sont dans la base de données, vous pouvez facilement faire cela et envelopper le flux de travail, etc. –

Répondre

1

ASP.NET MVC est un type de projet d'application Web. Ainsi, tout le code-behind est compilé dans un assembly avant le déploiement. Ce n'est pas comme un projet WebSite lorsque, au moment de la demande, le code-behind est compilé. Cela signifie que vos vues ont une déclaration "Inherits". Le type dont ils héritent doit exister quelque part. Si vos pages héritent de ViewPage, vous êtes défini. S'ils héritent de ViewPage de T, alors vous avez des problèmes. La syntaxe CLR pour définir un type générique est moche. Consultez ce post for more info.

Voici un exemple de la syntaxe:

System.Web.Mvc.ViewPage`1[ [System.Int32,mscorlib] ]