【问题标题】:How to create a customValidation in asp.net mvc?如何在 asp.net mvc 中创建自定义验证?
【发布时间】:2020-07-02 11:54:31
【问题描述】:

我有表单,但它不会验证 View 上的错误消息。当我检查它时,根本没有错误。我在下面需要一些帮助来更好地改进我的逻辑。离开EditorFor时我想要什么,应该有一个错误状态“此字段是必需的”,并带有图像标题(错误图像)。

// View
<div class="form-group row">
<label for="Attendee" class="col-sm-2 col-form-label">Attendee Cell Number*</label>
                            <div class="col-sm-3">
                                @Html.EditorFor(model => model.RegForm.CellNumber, new { htmlAttributes = new { @class = "form-control", autofocus = "autofocus", placeholder = "Cell Number" } })
                                @Html.ValidationMessageFor(model => model.RegForm.CellNumber)
                            </div>
                        </div>

// Model
    public class RegistrationTrainingForm
    {
       
        public string Title { get; set; }
        public string FirstName { get; set; }

        public string LastName { get; set; }

        public string Position { get; set; }

        public string Company { get; set; }

        public string StreetAddress {get ; set;}

        public string StreetAddressLine { get; set; }

        public string City { get; set; }

        public string State { get; set; }

        public string Country { get; set; }

        public int ZipCode { get; set; }

        public string Email { get; set; }

        [Required(ErrorMessage = "This field is required")]
        
        [DataType(DataType.PhoneNumber)]
        
        public string CellNumber { get; set; }

        public string DietaryRequirements { get; set;}

        public int Country_Id { get; set; }

        public string Country_Name { get; set; }
    }

//CustomValidation.cs
  public class CustomFormValidation:ValidationAttribute
    {
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            
                
            return base.IsValid(value, validationContext);
        }
    }

【问题讨论】:

  • 验证是否被触发?在操作中,ModelState.IsValid 属性你得到了什么?我认为自定义验证没有触发。分享你的 Action 代码?
  • @Rahatur 我没有在我的控制器上创建操作。它只是一个 CustomValidation.cs 我想要我的 EditorFor 当用户离开时如果它是空的应该验证错误检查。
  • 我已经发布了一个可能原因的答案。请检查答案是否适合您。

标签: c# asp.net-mvc data-annotations


【解决方案1】:

您在谈论客户端验证。您能否确保以下内容正常:

#1。确保您的页面上加载了以下文件(这些文件可能有不同的版本):

<script src="~/Scripts/jquery.js"></script>    
<script src="~/Scripts/jquery.validation.js"></script>    
<script src="~/Scripts/jquery.validation.unobtrusive.js"></script>

#2。在您的 web.config 文件中,您有以下部分:

<appSettings>
   <add key="ClientValidationEnabled" value="true" />
   <add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>

#3。呈现页面时,从视图源检查输入控件中是否设置了 data-val="true" 属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多