[英]Passing a String value through asp-for=“…” into a Model in ASP.Net core isn't working the way it should
因此,我嘗試通過發送表單來傳遞字符串類型的密碼,所有其他數據都按應有的方式工作,但是當我使用 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 class 我嘗試檢查密碼是否匹配但它們一直在蜂鳴 Null
如果兩個密碼在您的 Userdata model 中,您需要在前端使用Userdata.Password1
和Userdata.Password2
:
<div class="form-group">
<label asp-for="Userdata.Password1" class="control-label">Password</label>
<input asp-for="Userdata.Password1" class="form-control" type="password" required />
<span asp-validation-for="Userdata.Password1" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Userdata.Password2" class="control-label">Password</label>
<input asp-for="Userdata.Password2" class="form-control" type="password" required />
<span asp-validation-for="Userdata.Password2" class="text-danger"></span>
</div>
如果您只想接收以下屬性的數據:
public String Password1 { get; set; }
public String Password2 { get; set; }
您需要在它們上添加[BindProperty]
屬性:
[BindProperty]
public String Password1 { get; set; }
[BindProperty]
public String Password2 { get; set; }
結果:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.