c# - ¿Cómo obtener valor de DropdownList en la devolución de datos de ViewModel Tipo de modelo?

CorePress2023-11-30  1

He utilizado un ViewModel, que tiene 2 modelos diferentes. 1) Modelo de Datos de una Persona 2) Lista de pasatiempos

 public class DetailsandHobbyVM
{
    public List<HobbyMastr> hobbiesVM { get; set; }

    public DetailsMaster detailsVM { get; set; }
}

Aquí tienes estos modelos.

1) HobbyMastr

 public partial class HobbyMastr
{
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
    public HobbyMastr()
    {
        this.DetailsMasters = new HashSet<DetailsMaster>();
    }

    public int HobbyId { get; set; }
    public string HobbyName { get; set; }

    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ICollection<DetailsMaster> DetailsMasters { get; set; }
}

2)Maestro de detalles

  public partial class DetailsMaster
{
    public int DetailsId { get; set; }
    public string Name { get; set; }
    public Nullable<int> HobbyId { get; set; }
    public string Image { get; set; }
    public Nullable<int> Gender { get; set; }

    public virtual HobbyMastr HobbyMastr { get; set; }
}

Aquí está el método de acción de mi controlador donde intento obtener los valores en el argumento Objeto de tipo Detalles y HobbyVM

  public ActionResult DetailsPost(DetailsandHobbyVM p)
    { }

Aquí está la vista

@model DemoWebsite.ViewModel.DetailsandHobbyVM

@using (Html.BeginForm("DetailsPost", "Home", FormMethod.Post)){

@Html.TextBoxFor(m => m.detailsVM.Name)

@Html.TextBoxFor(m => m.detailsVM.Image)

@Html.DropDownListFor(m => m.hobbiesVM, new SelectList(Model.hobbiesVM, "HobbyId", "HobbyName"))

@Html.RadioButtonFor(m => m.detailsVM.Gender, 1) @*//Male*@

@Html.RadioButtonFor(m => m.detailsVM.Gender, 2) @*//Female*@

<input type="submit" value="SubmitMe!" />}

Ahora estoy intentando enviar todos estos valores a DetailsPost ActionMethod pero todos los campos en (objeto p) reciben valores excepto HobbyId.

¿Alguien puede ayudarme con esto?



------------------------

Necesitas vert el campo para el valor seleccionado en el método DropDownListFor. Si cambia de m.detailsVM a m.detailsVM.HobbyId, se completará el valor en HobbyId de DetailsMaster.

@Html.DropDownListFor(m => m.detailsVM.HobbyId, new SelectList(Model.hobbiesVM, "HobbyId", "HobbyName"))
Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare