web-dev-qa-db-fra.com

Quelle est la différence entre .aspx et .aspx.cs?

Je ne suis pas nouveau dans la programmation mais je suis nouveau dans Visual Studio, MVC, C #, ASP.NET et EXT.NET, c'est-à-dire tous les outils que j'essaie d'utiliser.

J'essaie de créer un projet MVC4 Ext.Net 2.0 et on m'a donné un projet non MVC similaire (en fonctionnalité) pour référence.

Je vois que ce projet non MVC a des fichiers .aspx et .aspx.cs. Il semble que le fichier .aspx mappe essentiellement sur la "Vue" dans MVC que je veux créer ... Et le fichier .aspx.cs a les fonctions qui se rapportent au fichier .aspx - tout comme le "Contrôleur" ? Bien que le fichier .aspx possède également certaines fonctions qui ne semblent pas entièrement liées à la vue ...

Quelqu'un pourrait-il me donner un aperçu rapide ou un point de départ pour cela?

16
Kalina

Les fichiers ASPX auront généralement l'interface utilisateur et seront généralement des balises HTML, certains codes d'intégration de contrôle de serveur ASP.NET (qui produisent finalement des balises HTML). Le fichier ASPX.CS (généralement appelé codebehind) aura un codage côté serveur en C #.

Si nécessaire, je relierais la page ASPX à View et ASPX.CS aux méthodes d'action du contrôleur.

Vous devez vous rappeler que dans les formulaires Web, il y a des contrôles ASP.NET que nous utiliserons dans le fichier ASPX pour rendre du HTML. Les exemples sont TextBox, DataGrid, etc. Dans MVC, il n'y a rien appelé contrôle serveur. La vue sera un HTML pur et manuscrit.

Si nécessaire, vous pouvez créer un projet hybride qui est une combinaison de MVC et de formulaires Web. Scott a un article qui l'explique ici .

Pas de ViewState dans MVC :)

Lors du passage d'ASP.NET Webforms à MVC, une chose importante que vous devez comprendre est que l'architecture MVC essaie de rester fidèle au fait que HTTP est sans état . Il n'y a pas viewstate disponible dans MVC. Vous devez donc vous assurer de repeupler les données dans chaque demande HTTP, si nécessaire. Les gens rencontrent généralement des problèmes lors du chargement de DropDownlist dans MVC. Il y a beaucoup de réponses ici dans SO sur la façon de gérer les listes déroulantes lors de la publication (lorsque le formulaire est publié).

Je suggère que vous examiniez certains niveaux de débutant tutoriels sur ASP.NET MVC et commencez à créer votre application étape par étape, et si vous rencontrez des problèmes, postez un ( nouvelle ) question avec les détails pertinents.

Bonne chance et bienvenue dans le monde merveilleux de MVC. :)

18
Shyju

Il semble que vous n'ayez pas créé de projet MVC, mais plutôt un projet WebForms.

Les fichiers * .aspx sont le balisage et les fichiers * .aspx.cs sont les fichiers code-behind. Les fichiers code-behind gèrent le code .NET pour tous les contrôles côté serveur dans les fichiers * .aspx.

2
Justin Niessner

Consultez le document de Wikipedia sur ASP.NET, http://en.wikipedia.org/wiki/ASP.NET .

Il est dit:

Les formulaires Web sont contenus dans des fichiers avec une extension ".aspx"; ces fichiers contiennent généralement du balisage HTML (X) statique, ainsi que du balisage définissant des contrôles Web côté serveur et des contrôles utilisateur où les développeurs placent tout le contenu rc de la page Web. De plus, le code dynamique qui s'exécute sur le serveur peut être placé dans une page dans un bloc <% - code dynamique -%>, qui est similaire à d'autres technologies de développement Web telles que PHP, JSP et ASP. Avec ASP.NET Framework 2.0, Microsoft a introduit un nouveau modèle code-behind qui permet au texte statique de rester sur la page .aspx, tandis que le code dynamique reste dans un fichier .aspx.vb ou .aspx.cs ou .aspx.fs (selon sur le langage de programmation utilisé).

Le nom de fichier .cs .aspx.cs est le code qui accompagne .aspx, qui contient généralement les contrôles html, css, javascript et autres contrôles côté client.

En règle générale, le code dynamique (C # dans ce cas en raison du .cs sur le nom du fichier) va dans le fichier .cs comme une "bonne pratique" pour garder le code dynamique et le html statique séparés. Une autre raison de cette abstraction est que le code .aspx.cs est exécuté côté serveur, tandis que le fichier .aspx est compilé sur le serveur et est ensuite servi au client Web qui le demande.

De plus, pour MVC, je suggère d'utiliser un modèle de vue différent, en particulier Razor, qui utilise des fichiers .cshtml au lieu des fichiers .aspx.cs et .aspx car ils sont plus faciles à suivre. La raison du changement dans MVC est que MVC utilise le modèle MVC pour abstraire des couches de code afin que .aspx et .aspxcs ne soient pas aussi nécessaires. D'après une expérience personnelle, j'ai utilisé à la fois Razor et Webforms (.aspx/.aspx.cs) avec MVC et je trouve que Razor est beaucoup plus facile à coder/à entretenir et à utiliser.

2
Ben Hoffman

Le fichier aspx contient le balisage de votre page. Il est automatiquement converti en code par ASP.NET.

Le fichier cs contient le code derrière votre page (initialisation, gestionnaires d'événements, etc.). Vous devez écrire ce code vous-même.

Ces deux fichiers sont liés à l'héritage et l'attribut Inherits de la directive @Page associe le balisage de page au code derrière

1

.aspx est votre fichier de balisage. Contient des éléments tels que HTML, CSS, JavaScript et ASP. Ce fichier .cs est appelé fichier codebehind. C'est là que vous faites des choses qui ne sont pas disponibles ou que vous ne le faites pas) pratique dans les langages de script. Généralement, aspx est exécuté côté client tandis que le code derrière est exécuté sur le serveur.

0
Antarr Byrd