asp.net-core - 在 ASP.NET Core 3 中编辑表单模型
问题描述
我在从控制器中的表单中检索数据时遇到问题(我收到所有参数的 Null)。
控制器动作:
public async Task<IActionResult> Register(RegisterFormModel registerFormModel)
{
if (ModelState.IsValid)
{
....
}
}
我的编辑模型:
public class RegisterFormModel
{
[Required]
[StringLength(100)]
[DisplayName("First Name")]
public string RegisterFirstName { get; set; }
[Required]
[EmailAddress]
[DisplayName("Email")]
public string RegisterEmail { get; set; }
[Required]
[StringLength(100)]
[DataType(DataType.Password)]
[DisplayName("Password")]
public string RegisterPass { get; set; }
[DataType(DataType.Password)]
[Compare("RegisterPass", ErrorMessage = "The password and confirmation password do not match.")]
[DisplayName("Confirm Password")]
public string ConfirmRegisterPass { get; set; }
}
我的观点包括:
@model ProjectName.Model.RegisterFormModel
....
....
<div class="wrap-login100 p-l-50 p-r-50 p-t-72 p-b-50">
<form class="login100-form validate-form" method="post" asp-controller="Account" asp-action="Register">
<span class="login100-form-title p-b-59">
Sign Up
</span>
<div class="wrap-input100 validate-input" data-validate="Name is required">
<span class="label-input100">Full Name</span>
<input asp-for="@Model.RegisterFirstName" class="input100" type="text" name="name" placeholder="Name...">
<span asp-validation-for="@Model.RegisterFirstName" class="focus-input100"></span>
</div>
<div class="wrap-input100 validate-input" data-validate="Valid email is required: ex@abc.xyz">
<span class="label-input100">Email</span>
<input asp-for="RegisterEmail" class="input100" type="text" name="email" placeholder="Email addess..">
<span asp-validation-for="RegisterEmail" class="focus-input100"></span>
</div>
<div class="wrap-input100 validate-input" data-validate="Password is required">
<span class="label-input100">Password</span>
<input asp-for="RegisterPass" class="input100" type="text" name="pass" placeholder="************">
<span asp-validation-for="RegisterPass" class="focus-input100"></span>
</div>
<div class="wrap-input100 validate-input" data-validate="Repeat Password is required">
<span class="label-input100">Repeat Password</span>
<input asp-for="ConfirmRegisterPass" class="input100" type="text" name="repeat-pass" placeholder="*************">
<span asp-validation-for="ConfirmRegisterPass" class="focus-input100"></span>
</div>
<div class="container-login100-form-btn">
<div class="wrap-login100-form-btn">
<div class="login100-form-bgbtn"></div>
<button type="submit" class="login100-form-btn">
Sign Up
</button>
</div>
</div>
</form>
</div>
现在,一旦我点击注册,控制器中 registerFormModel 对象中的所有变量都会收到 NULL。
知道我在做什么错吗?
谢谢
解决方案
那是名牌;asp-for 应该代替 name 和 id 标签。
推荐阅读
- r - R terra 包变形功能缺失
- javascript - 有人在化身命令中帮助我
- python - Tkinter 窗口未完全加载
- php - 为什么不在 php laravellazyCollection 中使用函数参数
- javascript - 使用 JavaScript 比较两个字符串并用 & 号替换单词和
- file - 从网站加载文件作为 dart 文件并导入到我的颤动视图中
- node.js - 启动节点应用程序的批处理脚本在执行后消失
- java - Java - 从数组(类)中查找特定 ID
- arrays - 在运行时在 C 中初始化数组
- c++ - 如何处理 std::vector 的错误?