gpt4 book ai didi

c# - 建模和验证具有多个提交的表单

转载 作者:行者123 更新时间:2023-11-30 20:26:06 25 4
gpt4 key购买 nike

我正在尝试找出使用 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; }
}

这是我的相关 Razor View 代码:

@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 个字段。我想做的是仅验证 UserNamePassword,如果按下第一个提交按钮或验证 FirstNameLastNameCellNumber,如果按下第二个提交按钮。我怎样才能做到这一点?

最佳答案

我会将我的模型分成两类,然后使用 ViewModel相反:

public class SignIn
{
[Required]
public string Username { get; set; }
[Required]
public string Password { get; set; }
}

public class SignUp
{
[Required]
public string FirstName { get; set; }
[Required]
public string LastName { get; set; }
[Required]
public string CellNumber { get; set; }
}

public class LandingViewModel
{
public SignIn SignIn { get; set; }
public SignUp SignUp { get; set; }
}

然后:

@model MyApp.ViewModels.LandingViewModel
SignIn.Username, SignIn.Password, SignUp.FirstName,...

关于c# - 建模和验证具有多个提交的表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50509795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com