首页 > 解决方案 > 在提交表单时查看未将数据传递给控制器

问题描述

当我在创建操作中使用 ViewModel 时,数据从视图传输到控制器,但是当我使用 Customer 类而不是 ViewModel 时,我的 obj 没有收到任何数据。

我的客户模型:

public class Customer
{
    public int Id { get; set; }
    public string Name { get; set; }
    public bool IsSubscribedToNewsletter { get; set; }

    public MembershipType MembershipTypes { get; set; }

    [Display(Name = "Membership Type")]
    public byte MembershiptypeId { get; set; }

    public DateTime BirthDate { get; set; }
}

我的 MembershipType 模型:

public class MembershipType
{
    public byte Id { get; set; }
    public short SignUpFee { get; set; }
    public byte DurationInMonths { get; set; }
    public byte DiscountRate { get; set; }

    public string Name { get; set; }
}

我的视图模型:

 public class CustomerViewModel
{
    public IEnumerable<MembershipType> MembershipTypes { get; set; }

    public Customer Customerss { get; set; }
}

控制器:

 [HttpPost]
    public ActionResult Create(Customer c)
    {
        return View();
    }

看法:

@using (@Html.BeginForm("Create", "Customers"))
{ <div class= "form-group">
    @Html.LabelFor(m=> m.Customerss.Name )
    @Html.TextBoxFor(m => m.Customerss.Name, new {@class = "form-control" 
</div>

<div class="checkbox">
    <label>
        @Html.CheckBoxFor(m=>m.Customerss.IsSubscribedToNewsletter ) Subscribed To NewsLetter
    </label>
    </div>


    <div class="form-group">
        @Html.LabelFor(m => m.Customerss.MembershiptypeId )
        @Html.DropDownListFor(m => m.Customerss.MembershiptypeId ,new SelectList(Model.MembershipTypes ,"Id","Name"),"Select Membership Type",  new { @class = "form-control" })
    </div>

    @Html.HiddenFor(m => m.Customerss.Id)


    <button type="submit" class="btn btn-primary"> Save </button>}

页面来源

标签: asp.net-mvc-5

解决方案


推荐阅读