标签: data-annotations

DataAnnotation TextArea 多封电子邮件

我正在使用 MVC 3。

我有一个文本区域,用户可以在其中输入多个电子邮件地址。电子邮件可以用逗号和空格分隔。用户也可以在框中按回车键。

  1. 是否有可以处理这种情况的属性?

  2. 我正在使用正则表达式来检查字符,但“abc@abc.com, tyz@tyz.com”失败

这是我的正则表达式: [RegularExpression(@"([a-zA-Z0-9 .@-_\n\t\r]+)", ErrorMessage = ValidationMessageConstants.EmailAdressInvalid)]

我在这里缺少什么?这个正则表达式来自以下帖子: DataAnnotations validation (Regular Expression) in asp.net mvc 4 - razor view

regex data-annotations asp.net-mvc-3

3
推荐指数
1
解决办法
5054
查看次数

是否可以将Required ValidationAttribute 与值类型一起使用?

我装饰了一堂课:

[Required(ErrorMessage = "Price is required.")]
public decimal Price { get; set; }
Run Code Online (Sandbox Code Playgroud)

但是当用代码验证它时:

   for each (PropertyInfo prop in Me.GetType().GetProperties())
   {
        if (prop.GetIndexParameters().Length = 0)
        {
            for each (ValidationAttribute validatt in prop.GetCustomAttributes(GetType(ValidationAttribute), True))
            {
                if (!validatt.IsValid(prop.GetValue(Me, Nothing))
                {
                    retval.Add(New PropertyValidationError(prop.Name, string.Format("There is a problem with the {0} property. It is flagged with the {1}", prop.Name, validatt.GetType.Name), validatt.ErrorMessage));
                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

我发现 的值0被视为满足“要求”,这不是我想要的(实际上,我想允许以外的任何值) - 是我的验证代码做错了,还是有没有一种方法可以将装饰与 a 一起ValidationAttribute用于值类型的默认值?

c# data-annotations

3
推荐指数
1
解决办法
1610
查看次数

RemoteAttribute 没有将参数传递给操作?

我正在尝试使用 RemoteAttribute 来验证使用 JSON 的数据元素服务器端。我的数据字段是:

[Display(Name = "My Number")]
    [Required]
    [Remote("IsValidMyNumber","Home",ErrorMessage="Bummer")]
    public string MyNumber { get; set; }
Run Code Online (Sandbox Code Playgroud)

我的控制器是:

  public JsonResult IsValidMyNumber(string MyNumber)
    {
        var test = services.ValidateMyNumber(MyNumber);
        return Json(test,JsonRequestBehavior.AllowGet);
    }
Run Code Online (Sandbox Code Playgroud)

我的观点是:

    <div class="editor-field">
    @Html.EditorFor(model => model.CheckInformation.MyNumber) 
    @Html.ValidationMessageFor(model => model.CheckInformation.MyNumber)
</div>
Run Code Online (Sandbox Code Playgroud)

生成的 HTML 是:

 <input class="text-box single-line" data-val="true" data-val-remote="Bummer" 
data-val-remote-additionalfields="*.MyNumber" data-val-remote-url="/Home/IsValidMyNumber" 
data-val-required="The Number field is required." id="CheckInformation_MyNumber"
 name="CheckInformation.MyNumber" type="text" value="" />
Run Code Online (Sandbox Code Playgroud)

当我调试并进入我的控制器时,“MyNumber”参数为空,即使我在它代表的文本框中有文本。

我知道文本框中的名称必须与参数中的名称相同,并且我已经验证了这一点。

有任何想法吗?

asp.net-mvc data-annotations

3
推荐指数
1
解决办法
1364
查看次数

正则表达式只允许数字、逗号和破折号

我正在尝试提出一个数据注释正则表达式来匹配以下格式。

34

38-30

100,25-30

4-5,5,1-5

基本上表达式应该只允许数字-(破折号),(逗号)以任何顺序

我尝试遵循但无法使其正常工作。

[RegularExpression(@"(0-9 .&'-,]+)", ErrorMessage ="Lot numbers are invalid.")]
Run Code Online (Sandbox Code Playgroud)

regex asp.net-mvc data-annotations

3
推荐指数
2
解决办法
1万
查看次数

如何通过正则表达式验证mvc中的CNIC no

我想验证CNIC号(计算国民身份证号)。我想从客户端获取输入(12345-1234567-1)除了破折号外没有任何字符。我写在下面的正则表达式

[RegularExpression("^[0-9]{5}-[-|]-[0-9]{7}-[-|]-[0-9]{1}")]
public string NICNo { get; set; }
Run Code Online (Sandbox Code Playgroud)

但是当我提交时,它会在验证错误中显示整个正则表达式,如下所示

在此处输入图片说明

c# regex asp.net-mvc data-annotations

3
推荐指数
1
解决办法
3799
查看次数

MVC 5 数据注释“不等于零”

可能我遗漏了一些东西,但有下面的模型

 public class MyModel
 {
     public double WhateverButNotZero { get; set; }
 }
Run Code Online (Sandbox Code Playgroud)

是否有任何 MVC 内置 DataAnnotation 来验证数字为“除零之外的所有内容”?

c# asp.net-mvc data-annotations

3
推荐指数
1
解决办法
3207
查看次数

在 C# 中验证列表

我们正在使用DataAnnotations来验证我们的模型。

我们模型的一个非常简化的版本是:

public class Model
{
    public List<Thing> Things;
}

public class Thing
{
    [Required]
    public string Name {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

现在,有趣的是,如果我创建一个Thing没有名称的并将其添加到模型中,我希望验证失败,但它通过了(震惊!)。

var model = new Model ();
var invalidThing = new Thing (); // No name would fail validation
model.Things.Add(invalidThing );

var validationContext = new ValidationContext(model);
var validationResults = new List<ValidationResult>();
var isValid = Validator.TryValidateObject(model, validationContext, validationResults, true);

Assert.False (isValid);  // This fails!
Run Code Online (Sandbox Code Playgroud)

认为这样做的原因是当您验证模型时,它会验证每个属性,但如果它是一个集合,则不会验证属性中的项目。Things是一个没有验证的属性,所以它通过了(尽管它包含无效项目)。

我们如何确保验证也验证集合属性中的项目?我可以使用一些开箱即用的验证器吗?

c# validation data-annotations

3
推荐指数
1
解决办法
1万
查看次数

.NET Core - 在模型中获取 DbContext

我需要在模型中获取 ApplicationDbContext。

我正在创建一个 ValidationAttribute。该验证将检查数据库上的一些记录并在必要时生成错误。

public class MyModel
{
  public int? ID { get; set; }
  [MyValidationForName]
  public string Name { get; set; }
}


public class MyValidationForName : ValidationAttribute
{
  protected ValidationResult IsValid(object value, ValidationContext validationContext)
  {
    /* code here */
    return new ValidationResult("This field contains an error");
  }
}
Run Code Online (Sandbox Code Playgroud)

上面的示例在保存记录时会生成错误 (DataAnnotation)。可以只检查日期、长度等。

但是我必须查询数据库上的一些记录。为此,不能将数据库上下文传递给模型。

我读过的所有 SO 主题都解释了如何使用 Remote 和 JS 进行验证,将验证放在控制器上。我不想要这个。

最相关的 SO 主题是:在自定义验证属性中使用数据库上下文(通过添加上下文它仍然不起作用)

任何人都可以帮助我将 ApplicationDbContext 传递给模型以执行查询并使用 ValidationAttribute 对其进行验证吗?

c# asp.net-mvc data-annotations .net-core

3
推荐指数
1
解决办法
1588
查看次数

?CVAT?如何在一项任务中创建多个工作?

根据CAVT的介绍,可以在一个任务中创建多个作业,但是我找不到任何创建更多作业的按钮,我该怎么做?

任务详情

opencv machine-learning computer-vision data-annotations

3
推荐指数
1
解决办法
1926
查看次数

在 asp.net core 中,空字符串是否转换为 NULL?

假设我有一个form和值""时,选择form从视图发送到controlleraction method,将asp.net core空字符串转换为NULL价值?

如果我不使该属性的布尔属性可以为空[required],则会出现以下错误:值 '' 无效。

这是否意味着:""被评估为NULL,布尔属性不允许NULL,asp.net 核心返回一个错误,说您不能将空传递stringModel属性,因为它不可为空,因为asp.net core将空字符串转换为 a NULL

c# asp.net data-annotations asp.net-core

3
推荐指数
2
解决办法
4508
查看次数