Asp.net core ASP.NET Core在POST后未在控件中显示数据,出现验证错误
注意:这些都是非常简单的代码来演示问题。我真正的代码有更多的控件、客户端验证等 我在一个名为Jim.cshtml的视图中简化了以下内容 Jim视图模型如下所示Asp.net core ASP.NET Core在POST后未在控件中显示数据,出现验证错误,asp.net-core,model-binding,Asp.net Core,Model Binding,注意:这些都是非常简单的代码来演示问题。我真正的代码有更多的控件、客户端验证等 我在一个名为Jim.cshtml的视图中简化了以下内容 Jim视图模型如下所示 public class Jim { [Required(ErrorMessage = "Required")] public string Email { get; set; } = ""; } 如果我加载页面,输入一封不以j开头的电子邮件,然后单击submit按钮,那么ModelState无效,因此控制器返回带有模型的Jim
public class Jim {
[Required(ErrorMessage = "Required")]
public string Email { get; set; } = "";
}
如果我加载页面,输入一封不以j开头的电子邮件,然后单击submit按钮,那么ModelState无效,因此控制器返回带有模型的Jim视图。验证摘要显示错误消息,但文本框为空
我希望文本框中填充我输入的电子邮件地址
我做错了什么
谢谢,HTML本身不知道如何绑定到模型中的值。您必须显式地执行此操作,或者使用像asp这样的标记帮助器来执行此操作 将asp用于: 或者明确地说:
<input type="text" name="Email" value="@Model.Email">
如果我加载页面并单击“提交”按钮而不输入任何内容[…],我希望文本框中填充我输入的电子邮件地址。-这两种说法似乎相互排斥。你能澄清一下吗?另外,当您调试时,j是否包含您期望的数据?你希望在哪一步失去价值?@David你完全正确!请看我编辑的问题,我真的觉得自己很愚蠢!那太明显了!不知怎的,我脑子里已经想好了,模型装订工会把它弄明白的。呵呵,谢谢
public class Jim {
[Required(ErrorMessage = "Required")]
public string Email { get; set; } = "";
}
<input type="text" asp-for="Email">
<input type="text" name="Email" value="@Model.Email">