2008-12-14 10 views
18

Peut-être que c'est une question naïve. À ma connaissance, ASP.NET MVC ne peut pas fonctionner avec ViewState et Postback, qui sont les bases des formulaires ASP.NET. Est-ce exact?ASP.NET MVC ne fonctionne pas avec ViewState et Postback?

Si c'est le cas, tous les contrôles Web ASP.NET en fonction de ViewState & Postback ne peuvent pas être utilisés dans ASP.NET MVC, n'est-ce pas?

Répondre

28

Les contrôles côté serveur d'ASP.NET fonctionnent avec WebForms et non avec MVC. MVC n'utilise pas de contrôles au sens ASP.NET traditionnel (du moins pour l'instant).

Le modèle MVC est assez différent du modèle WebForms; pas mieux ou pire, mais très différent. L'utilisation de MVC place le développeur beaucoup plus près du code HTML généré, se prête plus intrinsèquement aux tests unitaires et offre une forte séparation des préoccupations entre l'interface utilisateur et le code qui remplit cette interface. À première vue, en particulier pour les vétérans ASP.NET durcis, MVC peut sembler un énorme pas en arrière (si vous étiez en train de coder, les visions du développement ASP COM pourraient danser dans votre tête).

Mais essayez MVC. C'est très intéressant et son modèle est assez convaincant une fois qu'on s'y habitue.

En savoir plus ici: http://quickstarts.asp.net/previews/mvc/mvc_HowToRenderFormUsingHtmlHelpers.htm

En outre, vérifiez ce moteur de blog intéressant qui utilise MVC: http://www.codeplex.com/oxite

Enfin, consultez le projet de devanture de magasin MVC Rob Conery: http://wekeroad.com/category/mvc-storefront

+4

"au moins" - J'espère que jamais! – UpTheCreek

+0

D'accord! Le modèle MVC grandit et se développe sur vous. –

+0

modèle mvc est vraiment la meilleure approche. Les pages .net ont été faites pour les développeurs de Windows, ce qui pourrait commencer à coder pour le web, mais en réalité ce modèle est un mauvais ajustement pour le développement web. MVC peut sembler être un pas en arrière, mais seulement pour les personnes qui ne comprennent pas le cycle de vie d'une page Web. Je suis heureux que la publication et viewstate sont tués. Ne les manquez pas. – sarsnake

0

Cela pourrait vous surprendre, mais j'ai accidentellement laissé tomber un bouton sur une page MVC, et mis en œuvre l'événement Click, et cela a réellement fonctionné! J'ai été surpris, peut-être que cela fonctionne pour ce cas simple (c'était le seul élément sur la page à ce moment-là), et le fait que la réponse se termine par une redirection, mais dans certains cas, il semble que cela fonctionne :)

+0

Toutes les commandes ne sont pas déjouées par MVC. Seuls ceux qui requièrent la balise

(c'est-à-dire TextBox, DropDown, etc.). S'il nécessite ViewState, il ne fonctionnera pas (ne devrait pas fonctionner) dans MVC. – chadmyers

+1

S'il n'y a pas runat = server, il n'est pas utilisé comme contrôle côté serveur! –

4

Cela peut vous surprendre, mais je tombé accidentellement un bouton sur une page MVC , et mis en œuvre l'événement Click, et elle a effectivement travaillé!

S'il vous plaît corrigez-moi si je me trompe, mais je pense que le n'a pas besoin d'un ViewState. Il devrait créer une balise HTML simple, et si vous ne changez pas les propriétés du bouton au moment de l'exécution (texte, événement, ...), aucun VIEWSTATE ne sera nécessaire.

Peut-être que c'est la raison pour laquelle cela a fonctionné.

Questions connexes