estoy usando ASP.NET MVC 3 y tengo varias páginas en las que la mayoría de la vista del modelo es de sólo lectura. Un campo ejemplo sería como tales:ASP.NET MVC 3 - Las mejores prácticas para el manejo de Modelo en Ver
<div class="display-label">My Field</div>
<div class="display-field">@Model.MyField</div>
entonces tengo un campo donde el usuario tiene que escribir un texto de verificación de este modo:
@Html.LabelFor(model => model.Verification)
@Html.PasswordFor(model => model.Verification)
Cuando el usuario envía el formulario y golpea mi controlador, los campos de ViewModel son todos nulos, excepto el campo Verificación. La forma en que he tenido tiempo de esto, hasta el momento, es tener varios campos tales como: HiddenFor
@Html.HiddenFor(model => model.MyField)
Sin embargo, esto se pone feo muy rápido. ¿Hay una mejor manera de manejar el modelo en el estado de la vista para que, durante el POST del envío del formulario, pueda obtener todos mis campos? Esto es importante en caso de que el texto de verificación no coincida durante el POST y necesito devolver el modelo de vista sin volver a recuperarlo de la base de datos.
Gracias por cualquier sugerencia.
¿sería capaz de moverse por las preocupaciones de seguridad mediante el helper '@ Html.AntiForgeryToken()'? – Brandon
lo dudo. No sé demasiado sobre la funcionalidad AntiForgeryToken, pero lo más probable es que el usuario pueda ver la fuente de la página para ver qué token necesitan para que funcione. El token de falsificación es más para ataques de scripts entre sitios, no para la protección del valor, y ahora hay forma de saber si un campo debe o no proporcionarse.Todo lo que debe ser seguro necesita ser manejado por el servidor, y no puede confiar en las características del lado del cliente para la seguridad – KallDrexx
Terminé simplemente recargando mi instancia de objeto en el controlador. – Brandon