gpt4 book ai didi

asp.net-mvc - 第一次 MVC 不显示验证摘要消息

转载 作者:行者123 更新时间:2023-12-01 10:40:34 24 4
gpt4 key购买 nike

我正在使用 MVC 身份登录和 MVC 验证必填字段,我不想第一次显示错误消息。仅当用户单击提交按钮时才应显示。但是当页面每次都发布到 ActionResult 时,它也向我展示了验证。
在页面加载时第一次不显示消息的方法是什么。
我已经使用此代码清除消息,但每次都清除

enter image description here

public ActionResult Login(LoginModel model)
{
if (!ModelState.IsValid)
{
return View("Login");
}
foreach (var key in ModelState.Keys)
{
ModelState[key].Errors.Clear();
}
}
//Model
public class LoginModel
{

[Required]
[DataType(DataType.EmailAddress)]
[Display(Name = "Email")]
public string Email { get; set; }

[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
}

//HTML
@using (Html.BeginForm())
{
@Html.ValidationSummary("")
@Html.TextBoxFor(model => model.Email, new { maxlength = "45", placeholder = "User Email" })
@Html.PasswordFor(model => model.Password, new { maxlength = "45", placeholder = "User Password" })
<button type="submit" class="LoginBtn" id="loginButton"></button>
}

最佳答案

您需要删除 LoginModel model来自您的 GET 方法的参数。发生的事情是 DefaultModelBinder初始化 LoginModel 的新实例只要方法被调用。因为您没有为 LoginModel 的属性提供任何值。 , 他们是 null因此验证错误被添加到 ModelState然后显示在 View 中。相反,您的方法需要

public ActionResult Login()
{
LoginModel model = new LoginModel(); // initialize the model here
return View(model);
}

关于asp.net-mvc - 第一次 MVC 不显示验证摘要消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30497374/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com