由于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; }
}
}
我不确定此代码中有什么问题。 谢谢你的帮助。