【发布时间】:2020-11-27 06:53:33
【问题描述】:
我有一个登录页面,在页面模型中有一个名为 LoginDTO 的属性(我的自定义类)。其中只有两个字符串 - 用户名和密码。
在登录页面上,我有一个包含两个字段的登录表单,您可能会猜到它们是什么。代码在这里:
<div class="form-group">
<input class="form-control" type="email" name="email" placeholder="Email" asp-for="LoginDTO.Username">
</div>
<div class="form-group">
<input class="form-control" type="password" name="password" placeholder="Password" asp-for="LoginDTO.Password">
</div>
我填写输入字段并点击提交(表单方法设置为POST,我在页面模型中有一个OnPost 方法来处理它),由于某种原因LoginDTO.Username 为空但LoginDTO.Password 为人口稠密??因此,当然,ModelState 是无效的,没有Username 字符串可以使用。
这怎么可能?我尝试重命名变量并将其设置为value="@Model.LoginDTO.Username",而不是使用asp-for,两者都没有任何区别。
谁能帮忙?
更新:我将Username 属性更改为Email,它现在开始工作了吗?!为什么这些属性的名称会影响它们是否可以被赋值?!?!
【问题讨论】: