【发布时间】:2021-04-07 21:22:00
【问题描述】:
所以我尝试通过发送表单来传递密码类型的字符串,所有其他数据都按应有的方式工作,但是当我用 2 个密码尝试相同的事情时,什么也没有发生。
<hr />
<div class="row">
<div class="col-md-4">
<form method="post">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="Userdata.Username" class="control-label"></label>
<input asp-for="Userdata.Username" class="form-control" required />
<span asp-validation-for="Userdata.Username" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Password1" class="control-label">Password</label>
<input asp-for="Password1" class="form-control" type="password" required />
<span asp-validation-for="Password1" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Password2" class="control-label">Password</label>
<input asp-for="Password2" class="form-control" type="password" required />
<span asp-validation-for="Password2" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Userdata.Role" class="control-label"></label>
<input asp-for="Userdata.Role" class="form-control" required />
<span asp-validation-for="Userdata.Role" class="text-danger"></span>
</div>`
<div class="form-group">
<input type="submit" value="Create" class="btn btn-primary" />
</div>
</form>
</div>
</div>
上面的代码来自csHTML
[BindProperty]
public Userdata Userdata { get; set; }
public String Password1 { get; set; }
public String Password2 { get; set; }
// To protect from overposting attacks, enable the specific properties you want to bind to, for
// more details, see https://aka.ms/RazorPagesCRUD.
public async Task<IActionResult> OnPostAsync()
{
if (!ModelState.IsValid)
{
return Page();
}
if (Password1 != Password2)
{
errormessage = "Passwords don't Match";
return null;
}
上面的代码来自 Model 类,我在其中尝试检查密码是否匹配,但它们一直显示为 Null
【问题讨论】:
-
您的其他属性也使用模型名称,即“Userdata.Role”,但您的密码只是“Password1”。因此,它没有正确绑定到模型。
标签: c# html asp.net-core asp.net-core-mvc razor-pages