客户模型
public class CustomerModel
{
[Required]
public string FirstName { get; set; }
[Required]
public string LastName { get; set; }
[Required]
public string Contact { get; set; }
[Required]
public int Notifications { get; set; }
[Required]
public int InfoCollect { get; set; }
[Required]
public string Email { get; set; }
public UserModel User { get; set; }
}
用户模型类
public class UserModel
{
[Key]
[Required]
public string Email { get; set; }
[Required]
public string Password { get; set; }
[Required]
public string AccountType { get; set; }
}
}
数据上下文
public class OnlineFoodOrderingWebApplicationContext : DbContext
{
public OnlineFoodOrderingWebApplicationContext (DbContextOptions<OnlineFoodOrderingWebApplicationContext> options)
: base(options)
{
}
public DbSet<OnlineFoodOrderingWebApplication.Models.UserModel> NewUser { get; set; }
public DbSet<OnlineFoodOrderingWebApplication.Models.CustomerModel> Customer { get; set; }
public DbSet<OnlineFoodOrderingWebApplication.Models.StaffModel> Staff { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder
.Entity<CustomerModel>(eb =>
{
eb.HasNoKey();
});
modelBuilder
.Entity<StaffModel>(eb =>
{
eb.HasNoKey();
});
}
}
注册页面 HTML
<div class="form-group">
<div class="form-row">
<div class="col-md-6">
<div class="form-label-group">
<input name="firstName" type="text" class="form-control" placeholder="First name" required="required" asp-for="Customer.FirstName" />
<label for="firstName">First name</label>
</div>
</div>
<div class="col-md-6">
<div class="form-label-group">
<input type="text" name="lastName" class="form-control" placeholder="Last name" required="required" asp-for="Customer.LastName" />
<label for="lastName">Last name</label>
</div>
</div>
</div>
</div>
<div class="form-group">
<div class="form-label-group">
<input type="email" name="inputEmail" class="form-control" placeholder="Email address" required="required" asp-for="NewUser.Email" />
<label for="inputEmail">Email address</label>
</div>
</div>
<div class="form-group">
<div class="form-label-group">
<input type="text" name="inputContact" asp-for="Customer.Contact" class="form-control" placeholder="Contact Number" required="required" />
<label for="inputContact">Contact Number</label>
</div>
</div>
<div class="form-group">
<div class="form-row">
<div class="col-md-6">
<div class="form-label-group">
<input type="password" name="inputPassword" asp-for="NewUser.Password" class="form-control" placeholder="Password" required="required" />
<label for="inputPassword">Password</label>
</div>
</div>
<div class="col-md-6">
<div class="form-label-group">
<input type="password" name="confirmPassword" class="form-control" placeholder="Confirm password" required="required" />
<label for="confirmPassword">Confirm password</label>
</div>
</div>
</div>
</div>
@if (!ViewData.ModelState.IsValid && ViewData.ModelState["Error"].Errors.Count > 0)
{
<div class="alert alert-
<strong>Error!</strong> danger">@ViewData.ModelState["Error"].Errors.First().ErrorMessage
</div>
}
<button class="btn btn-primary btn-block" type="submit"> Send Message</button>
注册页面 html.cs
public class RegisterModel : PageModel
{
private readonly ILogger<IndexModel> _logger;
private readonly OnlineFoodOrderingWebApplication.Data.OnlineFoodOrderingWebApplicationContext _context;
public RegisterModel(OnlineFoodOrderingWebApplication.Data.OnlineFoodOrderingWebApplicationContext context, ILogger<IndexModel> logger)
{
_context = context;
_logger = logger;
}
public void OnGet()
{
}
public IActionResult Create()
{
return Page();
}
[BindProperty]
public CustomerModel Customer { get; set; }
[BindProperty]
public UserModel NewUser { get; set; }
public IActionResult OnPost()
{
if (ModelState.IsValid == false)
{
NewUser.AccountType = "Customer";
ModelState.AddModelError("Error", "This is Error"+ NewUser.AccountType+ NewUser.Password+Customer.LastName);
return Page();
}
Customer.Notifications = 1;
Customer.InfoCollect = 1;
_context.NewUser.Add(NewUser);
return RedirectToPage("/Index");
}
}
有一个错误,我无法从 html 输入中获取“NewUser”数据到 OnPost 方法。然而,这似乎与“客户”相同,但“客户”运行良好,能够从输入中获取数据。