2008-12-14 35 views
18

Quizás esta sea una pregunta ingenua. Según entiendo, ASP.NET MVC no puede funcionar con ViewState y Postback, que son los fundamentos de los formularios de ASP.NET. ¿Es eso correcto?¿ASP.NET MVC no funciona con ViewState y Postback?

Si eso es todo, entonces todos los controles web de ASP.NET que dependen de ViewState & Postback no se pueden utilizar en ASP.NET MVC, ¿verdad?

Respuesta

28

Los controles del lado del servidor de ASP.NET funcionan con WebForms, no con MVC. MVC no usa controles en el sentido tradicional de ASP.NET (al menos hasta ahora).

El modelo MVC es bastante diferente del modelo de WebForms; no mejor o peor, pero muy diferente. El uso de MVC coloca al desarrollador mucho más cerca del HTML generado, se presta de manera más intrínseca a las pruebas unitarias y proporciona una gran separación de inquietudes entre la IU y el código que puebla esa IU.

A primera vista, especialmente para veteranos endurecidos de ASP.NET, MVC puede parecer un gran paso hacia atrás (si ha estado codificando entonces, las visiones del desarrollo de ASP COM podrían bailar en su cabeza).

Pero pruebe MVC. Es muy interesante y su modelo es bastante convincente una vez que te acostumbras.

Leer más aquí: http://quickstarts.asp.net/previews/mvc/mvc_HowToRenderFormUsingHtmlHelpers.htm

Además, echa un vistazo a este motor interesante blog que utiliza MVC: http://www.codeplex.com/oxite

Por último, echa un vistazo a proyecto del escaparate MVC de Rob Conery: http://wekeroad.com/category/mvc-storefront

+4

"al menos todavía" - ¡Ojalá nunca! – UpTheCreek

+0

de acuerdo! El modelo MVC simplemente crece y crece en ti. –

+0

modelo de mvc es realmente el mejor enfoque. Las páginas .net se crearon para el desarrollador de Windows, por lo que podría comenzar a codificarse en la web, pero en realidad este modelo no es adecuado para el desarrollo web. MVC puede parecer un paso atrás, pero solo para personas que no comprenden el ciclo de vida de una página web. Me alegro de que la devolución de datos y viewstate se maten. No los extrañará. – sarsnake

0

Esto podría sorprenderte, pero accidentalmente solté un botón en una página de MVC e implementé el evento Click, ¡y realmente funcionó!

Me sorprendió, quizás funcione solo para este simple caso (era el único elemento en la página en ese momento), y el hecho de que la respuesta terminó con una redirección, pero en algunos casos parece que puede funcionar :)

+0

MVC no frustra todos los controles. Solo los que requieren la etiqueta

(es decir, TextBox, DropDown, etc.). Si requiere ViewState, no funcionará (no debería) en MVC. – chadmyers

+1

¡Si no tiene runat = server, no se está utilizando como control del lado del servidor! –

4

Esta vez te sorprenda, pero yo cae accidentalmente un botón en una página MVC , y puesto en práctica el evento Click, y que en realidad trabajado!

Corrígeme si me equivoco, pero creo que no necesita un ViewState. Debe crear una etiqueta HTML simple, y si no cambia las propiedades del botón en tiempo de ejecución (texto, evento, ...), no se necesitará VIEWSTATE.

Quizás esa sea la razón por la que funcionó.