asp.net-mvc-3 - que - viewbag mvc 4 ejemplos
Crear propiedades ViewBag basadas en cadenas (2)
Acabo de descubrir que ViewData se puede usar para crear tales propiedades para ViewBag
Así que para crear la propiedad CityErrorMessage tengo que usar
ViewData.Add("CityErrorMessage", MyErrorMessage)
y luego en la vista puedo usar
@ViewBag.CityErrorMessage
EDITAR:
Creé las propiedades de ViewBag dinámicamente, porque recibí el nombre del campo con un error de validación en una lista
Así que el código en realidad es
foreach (ValidationError err in ValidationErrors)
{
ViewData.Add(
string.format("{0}ErrorMsg", err.PropertyName),
err.ValidationErrorMessage);
}
¿Hay alguna forma de crear y usar propiedades dinámicas para ViewBag, basadas en cadenas?
Algo como
ViewBag.CreateProperty("MyProperty");
ViewBag.Property("MyProperty") = "Myvalue";
Gracias
Actualización: Me di cuenta tardíamente de que este código proviene de un proyecto de Nancy y Nancy implementa su propio ViewBag, por lo que este código no funciona con .Net MVC3 y no responde la pregunta. Sin embargo, podría argumentarse que la pregunta podría resolverse cambiando a Nancy.
Encontré que ViewBag tiene un método Add
para que puedas hacer esto:
foreach(var row in model)
{
ViewBag.Add(row.resourceName, row.content);
}