2009-12-02 4 views
1

Virtual UserControl J'ai une application avec le FrontEnd séparés en un seul fichier de projet et les CodeBehind/cours séparés dans une bibliothèque de classes complètement différentes. Ce dont j'ai besoin est un moyen de, à partir du UserControl Type, obtenir c'est VirtualPath.Dynamiquement récupérer Chemin

En règle générale, nous aurions cela dans le code

Board uc = (Board)Page.LoadControl(@"~\Board.ascx"); 

Mais je veux est quelque chose comme ça

Board uc = (Board)Page.LoadControl(Board.VirtualPath); 

OU

Board uc = Page.LoadControl(Board); 

Quelqu'un a une idée comment je peux y arriver ?

Merci à l'avance :)

Répondre

1

Joli que votre mise en oeuvre des contrôles, dans le cadre MVC, est incorrect.

Je pense que vous essayez de charger des contrôles alors que vous pensez peut-être à des vues partielles.

Normalement, ici dans la terre mvc, vous faites quelque chose comme <% Html.PartialView("PartialViewName", Model); %>

Vous pouvez, à l'aide WebFormViewEngine amd PartialViewLocationFormats spécifier des emplacements partagés des vues partielles, etc.

Vous pouvez également, de votre point de vue dire quelque chose comme Je n'ai vu ou entendu parler de personne utilisant LoadControl à partir d'une application MVC.

Vous pouvez également créer vos propres assistants HTML ainsi que les contrôles Web, mais aucun d'eux n'utilise LoadControl.

On dirait que vous essayez de réutiliser vos contrôles WebForms. Je convertirais peut-être vos contrôles Web en HTML Helpers ou WebControls. Rechercher des contrôles Web MVC.

Check out this link.

Also this one gives more info.

+0

Ceci n'utilise pas nécessairement le Framework MVC, mais plutôt une approche de type MVC pour les projets web. Comme je l'ai dit, les fichiers de pages vivent dans un projet tandis que les fichiers codebehind et class vivent dans un autre projet, lui-même dans un autre répertoire. C'est pourquoi je l'ai étiqueté MVC, mais pas nécessairement en utilisant le MVC Framework ici. Essentiellement, je dois être en mesure de référencer le VirtualPath du Usercontrol d'une façon ou d'une autre, donc je peux le charger dynamiquement sur ma page. Une idée de comment je peux faire ça? – Kobojunkie

Questions connexes