Tengo un ViewBag.Something
y esta información se genera aleatoriamente. En mi opinión, establecí esto en una etiqueta como @Html.LabelFor(m => m.Something, (string)ViewBag.Something)
. Esto funciona bien, pero cuando envío el formulario puede haber errores y si hay errores, necesito que esta etiqueta siga siendo la misma, ya no quiero datos dinámicos/aleatorios, así que no llamaría al método de control que se generó este ViewBag. ¿Hay alguna manera de retener este valor sin tener alguna variable privada en mi controlador? ¿Alguna buena forma de que lo haga MVC/Razor?¿Cómo se pueden guardar los datos de ViewBag después de una publicación de formulario?
Respuesta
En el get, configure un modelo, configúrelo dinámicamente y cuando se esté ejecutando return view()
, haga return view(model)
. Luego, en la vista, configure un campo oculto que pueda seguir pasando el valor necesario. Elegí seguir esta ruta porque no tengo que preocuparme por ningún código de servidor para que esto funcione en una publicación y no tengo que preocuparme por ninguna sesión.
Opción 1:
pasar el valor de "ViewBag.Something" al controlador mediante el uso de valores de ruta:
@Html.ActionLink("ButtonText", "ActionName", new { Something = @ViewBag.Something })
Opción 2: Puede utilizar TempData.
public ActionResult Index()
{
var Something = "YOURVALUE";
TempData["Something"] = Something;
.......
}
public ActionResult OtherAction()
{
var Something = TempData["Something "];
...........
}
Estado de pasar entre los métodos de acción
métodos de acción podría tener que pasar los datos a otra acción, como si se produce un error cuando se registró un formulario, o si el método debe redirigir a adicional métodos, como podría ocurrir cuando el usuario se dirige a una vista de inicio de sesión y luego vuelve al método de acción original.
Un método de acción puede almacenar datos en el objeto TempDataDictionary del controlador antes de llamar al método RedirectToAction del controlador para invocar la siguiente acción. El valor de la propiedad TempData se almacena en estado de sesión. Cualquier método de acción que se llame después de establecer el valor TempDataDictionary puede obtener valores del objeto y luego procesarlos o mostrarlos. El valor de TempData persiste hasta que se lee o hasta que la sesión expira. La persistencia de TempData de esta manera habilita escenarios como la redirección, porque los valores en TempData están disponibles más allá de una sola solicitud.
así que almacenaría en una ViewBag.Something TempData cuando golpeo y presentar si algo sale mal, estará disponible para su uso? Eso podría crear problemas porque mi etiqueta se está completando desde ViewBag y supongo que ahora tendré que tener algún tipo de if? – Pittfall
Consulte mi actualización para obtener una opción más que puede probar. –
Gracias por la ayuda, se ve bien pero fui en una dirección diferente, así que no puedo aceptar su respuesta – Pittfall
Viendo mensaje en viewbag tras su publicación (que el usuario este método)
ActionResult SubmitUser(){
ViewBag.Msg =TempData["Msg"];
return view();
}
[HtttpPost]
ActionResult SubmitUser(){
TempData["Msg"] ="Submitted Successfully"];
return view();
}
el valor es enviar a un método get ..
- 1. Publicación de descarga después del envío de formulario w/validation
- 2. ViewBag es NULL después de RedirectToAction (+ reinicialización de ViewBag)
- 3. Cómo obtener los datos del modelo después de guardar (CakePHP)
- 4. Redirigir desde una publicación de formulario Ajax
- 5. ¿Cómo? Publicación de formulario en varias ubicaciones
- 6. MVC3 RedirectToAction en un método de publicación y supresión ViewBag
- 7. jQuery Diálogo publicación de campos de formulario
- 8. Publicación HTTP: parámetros url y datos de formulario
- 9. Django: cómo redirijo una publicación y paso los datos de la publicación
- 10. ¿Se pueden usar los eventos de creación de publicaciones de Visual Studio con la publicación ClickOnce?
- 11. ¿Cómo guardo los datos del formulario después de enviar el formulario usando javascript?
- 12. Retención de los datos de formulario JSP enviados
- 13. ¿No se pueden aplicar las propiedades de publicación?
- 14. Publicación de elementos de formulario que no están visibles en tablas de datos
- 15. Obtener datos de la publicación, Zend Framework
- 16. Ver no actualizar después de la publicación
- 17. No se pueden recuperar datos de Cassandra
- 18. Los datos de límite (tamaño) se pueden almacenar en una matriz de javascript.
- 19. publicación de matriz multidimensional desde el formulario
- 20. httplistener con datos de publicación
- 21. Rails/Haml: ¿Cómo crear un formulario de publicación?
- 22. ¿Cómo se pueden visualizar los marcos de datos de una buena manera?
- 23. Imprime los valores de publicación
- 24. ¿Cómo evitar que jQuery ajax siga una redirección después de una publicación?
- 25. ¿Es posible redirigir los datos de la publicación?
- 26. ¿Cómo puedo registrar datos de publicación RESTful?
- 27. Evento después de guardar una cita de Outlook
- 28. Viendo los cambios de datos del modelo de Magento en el evento antes/después de guardar?
- 29. Mongo Base de Datos de guardar los datos del mapa
- 30. ¿Cómo borrar los datos de publicación para un cuadro de texto en una aplicación ASP.NET MVC?
Esto tiene un problema de seguridad. Si alguien inspecciona el código, podrá obtener o incluso modificar los datos ... ¿Qué sucede si se trata de un objeto? – Nick