El update model es igualmente vulnerable a la inyeccion de propiedades. Tenes que utilizar IncludedProperties y ExcludedProperties.
Otra opcion es utilizar ViewModels que solo incluyan los campos capturados en esa pantalla. ---------------------------------- Carlos Peix 2011/3/9 Andres Guzman <andres.guzman...@gmail.com> > Tal como dices, encontre información al respecto en la cual dicen que una > forma fácil es recibir el objeto completo pero existe el riesgo de la > inyeccion de propiedades y la otra es utilizar el formcollection o el método > UpdateModel que tendre que averiguar en que consiste este UpdateModel o cual > es su funcion. > > Pero creo que por lo poco que eh estudiado el tema me parece que lo mejor > aunque menos eficiente es utilizar algo como esto tanto para cuando quiera > modificar o crear algun registro > > > public ActionResult Crear(FormCollection formColl) > { > string a = formColl["a"].ToString(); > string b = formColl["b"].ToString(); > string c = formColl["c"].ToString(); > > MICAPADENEGOCIO.Crear(a, b, c); > > return View() > } > > O el updatemodel, con esto me evito el riesgo de "injeccion de propiedades" > > Estare en lo correcto. > > Grx > > El 9 de marzo de 2011 10:31, Carlos Peix <peix-lis...@praxia.com.ar>escribió: > >> Lo que dice Leandro es correcto, pero, tal como sospechas, hay variantes y >> motivos. >> >> En primer lugar, cuando recibis el objeto completo, hay que tener cuidado >> con la "injeccion de propiedades". Esto es, que un chico malo te agregue en >> el post datos para propiedades qeu vos no queres modificar. Busca >> informacion sobre los "IncludedProperties" y "ExcludedProperties". Si >> necesitas mas informacion sobre esto avisanos. >> >> Segundo, el binder que completa el objeto crea una nueva instancia, esto >> puede no ser lo adecuado en una modificacion. Yo utilizo un repositorio para >> recuperar el objeto y luego la FormCollection o el metodo UpdateModel del >> Controller. >> >> Abrazo >> >> ---------------------------------- >> Carlos Peix >> >> 2011/3/9 Andres Guzman <andres.guzman...@gmail.com> >> >>> Pero no existe alguna buena practica que te indique cual utilizar, o >>> simplemente no hay diferencia en cada una de ellas y la decisión de cual >>> utilizar queda a cargo del programador. >>> >>> >>> >>> El 9 de marzo de 2011 09:08, Leandro Halfon >>> <leandrohal...@gmail.com>escribió: >>> >>> Andres, >>>> A mi personalmente me gusta pasar el objeto. >>>> Obviamente no siempre hace falta, pero en el caso de un ABM, es mas >>>> facil y rapido para trabajar. >>>> >>>> Saludos. >>>> >>>> 2011/3/9 Andres Guzman <andres.guzman...@gmail.com> >>>> >>>>> Estimados: >>>>> >>>>> Buenas tardes, acudo a Uds. por mi inexperiencia en MVC 2, y necesito >>>>> saber si alguien me la puede aclarar. Lo que sucede es que no se cual sera >>>>> la mejor forma de pasar los datos desde la vista al controlador cuando se >>>>> realize un submit. >>>>> >>>>> >>>>> - si pasar el modelo (public ActionResult Crear(Usuario >>>>> objUsuario)) >>>>> - si pasar cada dato por separado (public ActionResult Crear(string >>>>> nombre, string aPatero, string mail)) y yo despues en mi capa negocio >>>>> crear >>>>> el objeto con los diferentes datos >>>>> - o pasar una Colleccion con los datos del formulario (public >>>>> ActionResult Crear(FormCollection formColl)) y yo despues en mi capa >>>>> negocio >>>>> crear el objeto con los diferentes datos >>>>> >>>>> Desde ya cualquier ayuda se agradece. >>>>> >>>>> -- >>>>> Andrés Guzmán >>>>> 099319111 >>>>> andres.guzman...@gmail.com >>>>> >>>>> >>>> >>> >>> >>> -- >>> Andrés Guzmán >>> 099319111 >>> andres.guzman...@gmail.com >>> >>> >> > > > -- > Andrés Guzmán > 099319111 > andres.guzman...@gmail.com > >