ASP.NET MVC - ViewBag


El ViewBag en ASP.NET MVC se usa para transferir datos temporales (que no están incluidos en el modelo) desde el controlador a la vista. Internamente, es una propiedad de tipo dinámico de la clase ControllerBase que es la clase base de la clase Controller. La siguiente figura ilustra la ViewBag:

En la figura anterior, adjunta la propiedad Name a ViewBag con la notación de puntos y le asigna un valor de cadena "Bill" en el controlador. Se puede acceder a esto en la vista como @ ViewBag.Name.

Puede asignar un objeto de tipo primitivo o complejo como valor a la propiedad ViewBag.

Puede asignar cualquier número de propiedades y valores a ViewBag. Si asigna el mismo nombre de propiedad varias veces a ViewBag, solo se considerará el último valor asignado a la propiedad.

Hay varias propiedades del objeto ViewBag a los cuales le podemos asignar distintos valores

    @if (Model.Tipodelogeo == "login")

    {

        ViewBag.Title = "Ingrese su Email y contraseña para poder acceder";

    }

    else

    {

        ViewBag.Title = "Ingrese su número de Documento y Fecha de Nacimiento para poder acceder";

    }

El siguiente ejemplo demuestra cómo transferir datos del controlador a la vista usando ViewBag.
namespace MVC_BasicTutorials.Controllers 

Ejemplo:  Forma Establecer ViewBag en METODO ACTION del Controler, ademas de string les puedo asignar array  por ejemplo

{
    public class StudentController : Controller
    {
        IList<Student> studentList = new List<Student>() { 
                    new Student(){ StudentID=1, StudentName="Steve", Age = 21 },
                    new Student(){ StudentID=2, StudentName="Bill", Age = 25 },
                    new Student(){ StudentID=3, StudentName="Ram", Age = 20 },
                    new Student(){ StudentID=4, StudentName="Ron", Age = 31 },
                    new Student(){ StudentID=5, StudentName="Rob", Age = 19 }
                };
        // GET: Student
        public ActionResult Index()
        {
            ViewBag.TotalStudents = studentList.Count();

            return View();
        }

    }
}

En el ejemplo anterior, queremos mostrar el número total de estudiantes en una vista. Por lo tanto, hemos adjuntado la propiedad TotalStudents al ViewBag y asignado el valor studentList.Count ().

Ahora, en la vista Index.cshtml, puede acceder a la propiedad ViewBag.TotalStudents, como se muestra a continuación.

<label>Total Students:</label>  @ViewBag.TotalStudents
en este caso yo le pase el total de los elementos de la lista 
lo que se vera en la lista sera:

Total Students: 5

Internamente, ViewBag es un contenedor de ViewData. Lanzará una excepción de tiempo de ejecución, si el nombre de la propiedad ViewBag coincide con la clave de ViewData.

Limitaciones de ViewBag
ViewBag no requiere encasillamiento al recuperar valores de él. Esto puede generar una excepción en tiempo de ejecución si se usa el método incorrecto en el valor.
ViewBag es un tipo dinámico y omite la verificación en tiempo de compilación. Por lo tanto, los nombres de las propiedades de ViewBag deben coincidir en el controlador y la vista mientras se escriben manualmente.

Referencias

https://www.productivecsharp.com/?gclid=Cj0KCQjw6NmHBhD2ARIsAI3hrM2KtWDh-R-1lfE9OanHVLQ6BZFvv5fIoTU80EUjka4YW7EPR56da08aAlQwEALw_wcB

https://www.tutorialsteacher.com/mvc/viewbag-in-asp.net-mvc

Comentarios

Entradas populares de este blog

¿Qué es la JCAHO Joint Commission on Accreditation of Healthcare Organizations?

PARSEO DEL CODIGO PDF417 DEL DNI ARGENTINO

¿Como instalar El Cliente de SOPHOS VPN ?