【发布时间】:2018-11-03 16:59:22
【问题描述】:
我正在尝试找出使用 ASP.Net Core 2 对具有多个表单标签和多个提交按钮的表单进行建模和验证的正确方法。我所拥有的是一个用户可以输入其用户名和密码的表单登录或输入他们的名字、姓氏和手机号码并注册。这是我的模型:
public class Landing
{
[Required]
public string Username { get; set; }
[Required]
public string Password { get; set; }
[Required]
public string FirstName { get; set; }
[Required]
public string LastName { get; set; }
[Required]
public string CellNumber { get; set; }
}
这是我的相关剃须刀视图代码:
@model MyApp.ViewModels.Landing
<form method="post">
<div>
<input asp-for="Username" type="text" />
</div>
<div>
<input asp-for="Password" type="password" />
</div>
<div>
<input type="submit" value="Sign In" />
</div>
</form>
<form method="post">
<div>
<input asp-for="FirstName" type="text" />
</div>
<div>
<input asp-for="LastName" type="text" />
</div>
<div>
<input asp-for="CellNumber" type="text" />
</div>
<div>
<input type="submit" value="Sign Up" />
</div>
</form>
现在我遇到的问题是我的验证。因为我的所有字段都标有 [Required] 属性,所以当我使用任一提交按钮提交表单时,它会验证所有 5 个字段。我想做的是仅验证UserName 和Password,如果按下第一个提交按钮或验证FirstName、LastName 和CellNumber,如果按下第二个提交按钮。我怎样才能做到这一点?
【问题讨论】:
-
分离视图模型会解决问题,不是吗?
标签: c# asp.net-mvc validation asp.net-core asp.net-core-2.0