【问题标题】:Field Validation error is showing as soon as page loads but should show after Submitting the form [duplicate]页面加载后立即显示字段验证错误,但应在提交表单后显示[重复]
【发布时间】:2016-06-13 14:51:13
【问题描述】:

所以我的模型中有这个:

[Required]
public string PasswordLoserFullName { get; set; }

在我的@using (Html.BeginForm 中,我是这样使用它的:

    <div class="form-group">
        @Html.LabelFor(m => m.PasswordLoserFullName, "Name", new { @class = "control-label col-xs-2" })
        <div class="col-xs-6">
            @Html.TextBoxFor(m => m.PasswordLoserFullName, new { @class = "form-control"})
            @Html.ValidationMessageFor(m => m.PasswordLoserFullName)
        </div>
    </div>

问题是页面一加载,就会显示错误消息。 是的,刚刚加载的表单,没有人输入任何内容。我希望它在用户单击提交按钮时显示。页面一加载就不会。

我做错了什么?

【问题讨论】:

标签: c# asp.net-mvc asp.net-mvc-5


【解决方案1】:

我希望它在用户单击提交按钮时显示。不像 页面加载后。

然后,这是一个被调用的GET 方法,而get 方法根本不传递模型,只显示页面。对于POST 方法,传递模型并执行验证。

【讨论】:

  • 嗯,好的,我明白你在说什么。但即使在操作方法的 GET 部分,对于要加载的请求密码表单,我仍然有一些字段来显示模型中的值,所以必须传递模型,现在我在该字段中放置了一些虚拟值,当加载页面,但仍然显示错误。
  • @Bohn,使用[RequiredValidation] 属性并将其设置为false,因为GET 方法实际上不需要验证。
  • hmm,我把这个加到那个属性的顶部,它说找不到这样的东西:( [RequiredValidation = false] ,你怎么用它?
  • 好吧,这个工作:将“ModelState.Clear()”添加到 GET 部分。
猜你喜欢
  • 2015-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-27
  • 1970-01-01
  • 2023-03-21
  • 2021-05-02
相关资源
最近更新 更多