模型绑定不起作用,参数"模型"在调试时在Create方法中显示null

时间:2017-12-03 20:51:59

标签: asp.net-mvc

由于asp.net mvc中的某些原因,模型绑定无法正常工作。我不确定错误在哪里。

这是动作方法。

[HttpPost]
public ActionResult Create(NewCustomerViewModel model)
{
return View();
}

以下代码是视图。

@model Vidly.ViewModels.NewCustomerViewModel
@{
    ViewBag.Title = "New";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>New Customer</h2>

@using (Html.BeginForm("Create", "Customers"))
{
    <div class="form-group">
        @Html.LabelFor(m => m.Customer.Name)
        @Html.TextBoxFor(m =>m.Customer.Name, new { @class = "form-control"})
    </div>
    <div class="form-group">
        @Html.LabelFor(m => m.Customer.Birthday)
        @Html.TextBoxFor(m => m.Customer.Birthday, new { @class = "form-control" })
    </div>
    <div class="checkbox">
        <label>
            @Html.CheckBoxFor(m => m.Customer.IsSubscribedToNewsLetter, new { @class = "checkbox" }) Subscribed to Newsletter?
        </label>
    </div>
    <div class="form-group">
        @Html.LabelFor(m => m.Customer.MembershipTypeId)
        @Html.DropDownListFor(m => m.Customer.MembershipTypeId,new SelectList(Model.MembershipTypes,"Id", "MembershipTypeName"),"Select Membership Type", new { @class = "form-control" })
    </div>
   <button type="submit" class="btn btn-primary">Save</button>
}

以下是我正在使用的视图模型

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Vidly.Models;

namespace Vidly.ViewModels
{
    public class NewCustomerViewModel
    {
        public IEnumerable<MembershipType> MembershipTypes;
        public Customer Customer;
    }
}

会员类型模型位于 -

之下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Vidly.Models
{
    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 MembershipTypeName { get; set; }

    }
}

客户模型位于 -

之下
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;

namespace Vidly.Models
{
    public class Customer
    {
        public int Id { get; set; }
        [Required]
        [StringLength(25)]
        public string Name { get; set; }
        public bool IsSubscribedToNewsLetter { get; set; }
        public MembershipType MembershipType { get; set; }
        [Display(Name="Membership Type")]
        public byte MembershipTypeId { get; set; }
        [Display(Name="Date Of Birth")]
        public DateTime? Birthday { get; set; }
    }
}

我不确定此代码中有什么问题。 谢谢你的帮助。

0 个答案:

没有答案