【问题标题】:How to get value from DropdownList in postback from ViewModel Type of Model?如何从模型的 ViewModel 类型的回发中从 DropdownList 中获取价值?
【发布时间】:2020-09-27 20:14:55
【问题描述】:

我使用了一个 ViewModel,它有 2 个不同的模型。 1) 人的细节模型 2)兴趣列表

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

    public DetailsMaster detailsVM { get; set; }
}

这是这些模型。

1) 爱好大师

 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)DetailsMaster

  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; }
}

这是我的控制器 ActionMethod,我试图在其中获取 DetailsandHobbyVM 类型的参数对象中的值

  public ActionResult DetailsPost(DetailsandHobbyVM p)
    { }

这里是视图

@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!" />}

现在我正在尝试将所有这些值发送到 DetailsPost ActionMethod,但是(p 对象)中的所有字段都在接收除 HobbyId 之外的值。

有人可以帮忙吗?

【问题讨论】:

    标签: c# asp.net asp.net-mvc model-view-controller razor


    【解决方案1】:

    您需要在 DropDownListFor 方法中设置所选值的字段。如果从 m.detailsVM 更改为 m.detailsVM.HobbyId,DetailsMaster 的 HobbyId 中的值将被填充。

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

    【讨论】:

      猜你喜欢
      • 2023-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-07
      • 2018-01-24
      相关资源
      最近更新 更多