none
mostrar formularios distintos al seleccionar cada radiobutton

    Pregunta

  • Hola

    Tengo el siguiente problema. En una vista para hacer el registro de usuarios tengo que implementar 2 tipos distintos de formularios dependiendo de que radiobutton este seleccionado, el problema es que no consigo decirle al controlador cual de ellos esta seleccionado.

    Lo tengo asi en la vista:

    @Html.RadioButtonFor(m => m.tipoCliente, "Particular");
    @Html.RadioButtonFor(m => m.tipoCliente, "Empresa");

    Necesito que en cuanto chequee particular me salga un registro para particulares y otro para empresas, los tengo ya preparados en otras vistas para redirigirlos pero no consigo que me muestre uno u otro nada mas chequearlo.

    y este es el modelo que estoy usando

    public class RegisterViewModel
        {
            public string tipoCliente { get; set; }

            [Required(ErrorMessage = "El campo email es obligatorio")]
            [Display(Name = "Email")]
            [EmailAddress]
            public string Email { get; set; }

            [Required(ErrorMessage = "El campo contraseña es obligatorio")]
            [StringLength(100, ErrorMessage = "El número de caracteres de {0} debe ser al menos {2}.", MinimumLength = 6)]
            [Display(Name = "Contraseña")]
            [EmailAddress]
            public string Password { get; set; }

            [Display(Name = "Correo electrónico")]
            [Compare("Email")]
            [EmailAddress]
            public string Password2 { get; set; }

        }

    miércoles, 16 de mayo de 2018 23:29

Todas las respuestas

  • Para recibir el valor simplemente declaramos un parámetro en el método de acción igual al nombre de la propiedad, o bien si tenemos muchos campos para distintas propiedades del modelo, podemos tener un único parámetro del tipo de modelo y listo.

    [HttpPost]
    public ActionResult AlgunaAccion(RegisterViewModel m)
    {
        //m ya viene con los datos del formulario.
        if (m.tipoCliente == "Particular)
        {
            ...
        }
        else
        {
            ...
        }
    }

    Como un dato interesante, le comento que el tipo de datos de la propiedad tipoCliente puede ser un enum.  El enum tendría los valores Particular y Empresarial.  Bueno, yo a mis enums siempre les agrego una opción de Desconocido o Invalido con el valor de cero.  Es útil.


    Jose R. MCP
    My GIT Repositories | Mis Repositorios GIT

    jueves, 17 de mayo de 2018 0:26