2008-09-19 8 views
1

Je travaille sur un assemblage qui a des pages prédéfinies et des contrôles utilisables. Je n'ai aucune difficulté à créer des contrôles serveur, mais je me demande quelles sont les «meilleures pratiques» en ce qui concerne le traitement des pages dans un assemblage. Pouvez-vous compiler une page dans un assemblage et la libérer comme une simple DLL? Comment cela serait-il accessible du point de vue du navigateur client jusqu'à l'adresse à laquelle il taperait ou serait dirigé vers un lien? À titre d'exemple, j'ai une page de connexion simple avec les champs texte et nom d'utilisateur standard, le bouton de connexion et une case à cocher «se souvenir de moi» avec un lien hypertexte «Je ne me souviens plus de mon nom d'utilisateur et/ou mot de passe». Puis-je accéder à cette page comme une ressource Web? tel que "http://www.site.name/webresource.axd?related_resource_id_codes"Bibliothèque de contrôle/page ASP.NET Question

Répondre

2

Votre meilleur pari si vous voulez être en mesure de coder et de le traiter comme une vraie page est de mettre en œuvre un VirtualPathProvider. L'utilisation d'un virtualpathprovider vous permet d'intégrer le aspx réel en tant que ressource (ou le mettre dans une base de données, peu importe) et de le servir à partir de là, tout en utilisant le moteur de compilation de pages asp.net. Ceci vous permet d'utiliser facilement les outils de conception visuelle de temps de studio, et vous évite d'avoir à faire de grandes quantités de personnalisation de construction pour précompiler les pages. Vous pouvez voir ici aussi

Si vous ne voulez pas faire cela, vous pouvez essayer d'utiliser l'outil aspnet_compiler pour précompiler l'aspx et ces pages dans une DLL. Cela nécessitera une certaine personnalisation de construction, et des astuces pour permettre de servir les pages de la DLL.

1

Vous pouvez ajouter un élément httpHandler à web.config pointant vers votre page. Quelque chose comme:

<httpHandlers> 
    <add verb="*" path="login.aspx" type="MyPages.LoginPage, MyPages" /> 
</httpHandlers>