标签: data-annotations

使用数据注释与MVC,Pro和Cons使用接口与MetadataType时

如果您阅读有关使用数据注释验证器进行验证的本文,则表明您可以使用MetadataType属性将验证属性添加到部分类的属性中.在使用LINM to SQL,Entity Framework或Subsonic等ORM时,可以使用它.然后,您可以使用"automagic"客户端和服务器端验证.它与MVC非常吻合.

但是,我的一位同事使用界面来完成完全相同的结果.它看起来几乎完全相同,并在功能上完成同样的事情.所以不要这样做:

[MetadataType(typeof(MovieMetaData))]
public partial class Movie
{
}

public class MovieMetaData
{
    [Required]
    public object Title { get; set; }

    [Required]
    [StringLength(5)]
    public object Director { get; set; }


    [DisplayName("Date Released")]
    [Required]
    public object DateReleased { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

他这样做了:

public partial class Movie :IMovie
{
}

public interface IMovie
{
    [Required]
    object Title { get; set; }

    [Required]
    [StringLength(5)]
    object Director { get; set; }


    [DisplayName("Date Released")]
    [Required]
    object DateReleased { get; …
Run Code Online (Sandbox Code Playgroud)

validation model-view-controller interface metadatatype data-annotations

10
推荐指数
1
解决办法
3203
查看次数

使用数据注释进行MVC验证 - 模型类或视图模型类?

将数据验证注释放在模型或视图模型中是最佳做法吗?一种方法优于另一种方法的优点/缺点是什么?

很想知道每个人都在进行验证,我目前正在模型项目中进行.但是我看到有几个人说这不是最好的做法.

validation asp.net-mvc data-annotations asp.net-mvc-2

10
推荐指数
1
解决办法
2259
查看次数

如何在RegularExpression中忽略大小写?

我有一个asp.net MVC应用程序.有一个名为File的实体,它有一个名为Name的属性.

using System.ComponentModel.DataAnnotations;

public class File    {
   ...
   [RegularExpression(@"([^.]+[.](jpg|jpeg|gif|png|wpf|doc|docx|xls|xlsx ..., ErrorMessage = "Invali File Name"]
   public string Name{ get; set; }
   ...
}
Run Code Online (Sandbox Code Playgroud)

有一个RegularExpressionValidator可以检查文件扩展名.有一种快速的方法我可以告诉它忽略扩展的情况而不必将大写变体显式添加到我的验证表达式中吗?我需要这个RegularExpressionValidator用于服务器端和客户端."(?i)"可用于服务器端,但这不适用于客户端

regex asp.net-mvc data-annotations

10
推荐指数
1
解决办法
3192
查看次数

WPF TextBox MaxLength - 有没有办法将它绑定到绑定字段上的数据验证最大长度?

视图模型:

public class MyViewModel
{
    [Required, StringLength(50)]
    public String SomeProperty { ... }
}
Run Code Online (Sandbox Code Playgroud)

XAML:

<TextBox Text="{Binding SomeProperty}" MaxLength="50" />
Run Code Online (Sandbox Code Playgroud)

有没有办法避免设置TextBox的MaxLength以匹配我的ViewModel(可能会因为它在不同的程序集中而改变)并让它根据StringLength要求自动设置最大长度?

c# wpf xaml maxlength data-annotations

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

获取具有特定值的自定义属性的所有属性

可能重复:
如何获取具有给定属性的属性列表?

我有这样的自定义类

public class ClassWithCustomAttributecs
{
    [UseInReporte(Use=true)]
    public int F1 { get; set; }

    public string F2 { get; set; }

    public bool F3 { get; set; }

    public string F4 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我有一个自定义属性UseInReporte:

[System.AttributeUsage(System.AttributeTargets.Property ,AllowMultiple = true)]
public class UseInReporte : System.Attribute
{
    public bool Use;

    public UseInReporte()
    {
        Use = false;
    }
}
Run Code Online (Sandbox Code Playgroud)

不,我想获得所有具有[UseInReporte(Use=true)]如何使用反射做到这一点的属性?

谢谢

c# reflection attributes data-annotations c#-4.0

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

在针对.NET 4.5之后,EF数据注释没有"正常工作"

我有一个针对.NET 4.0并使用EF 5.0的项目.将目标框架更改为4.5(并更新EF 5.0引用以使用.NET 4.5程序集)后,似乎数据注释不再起作用.例如:

[Table("ApplicationSession", Schema = "Application")]
public class ApplicationSessionEntity
{
    [Key, ForeignKey("GenericSession")]
    public int GenericSessionID { get; set; }
...
Run Code Online (Sandbox Code Playgroud)

过去工作正常,但现在在运行时,DbContext抛出InvalidOperationException:Unable to determine the principal end of an association....

我可以添加Fluent api调用来解决这个问题(并且确实如此),但是它不能识别该表不在"dbo"模式中.同样,我知道Fluent api可用于解决此问题,但为什么数据注释突然被忽略?

谢谢!

entity-framework data-annotations .net-4.5 entity-framework-5

10
推荐指数
1
解决办法
4751
查看次数

最小和最大字符串长度的单独错误消息 - MVC4数据注释

有人请使用MVC中的数据注释分享他们对最小和最大字符串长度的单独错误消息的实现吗?

它似乎StringLength只允许单个错误消息a MinLength/ MaxLength不生成不显眼的验证标记,因为它们不是IClientValidatable

虽然这似乎是一个非常普遍的要求,但我无法在网上找到实现.

validation data-annotations asp.net-mvc-4

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

EmailAddressAttribute不需要

[EmailAddress]在模型属性上有一个来自.net 4.5 的 DataAnnotation,它返回一个' 电子邮件字段不是有效的电子邮件地址.'验证时,Email属性为空时出错.

虽然这在技术上是正确的,但我希望这个空值只能用[Required]注释捕获.

是否有任何我想要的参数可以传递给[EmailAddress]注释以允许空字符串验证,或者我是否必须回退到使用自定义验证器正则表达式?

.net data-annotations

10
推荐指数
1
解决办法
1906
查看次数

自定义动态数据中的数据注释

我遇到了一个在动态数据Web应用程序中自定义DataAnnotations的场景.这是场景:

[显示(名称= "DispName")]

public string DName {get; set;}

我没有为Display DataAnnotation硬编码Name ="DispName",而是想从DataBase中获取一些值并使其适合于Name属性.喜欢:

[显示(名称= SomeValueFromDB)]

public string DName {get; set;}

有没有办法从数据库中显示Display DataAnnotation的Name属性而不是硬编码它的值?

提前致谢,

Sujith

asp.net asp.net-dynamic-data data-annotations

10
推荐指数
1
解决办法
2624
查看次数

如何通过带有数据注释的ModelState验证GET url参数

我有一个Web API项目...我想尊重REST原则,所以我应该只有一个GET方法,只需要一个POST方法......我必须进行搜索,所以我认为这与GET方法匹配,因为在搜索之后我获得了结果并且我在页面中显示...如果我没有找到任何东西我必须创建对象...这个动作是一个POST ...

现在我有一个问题......我必须验证搜索的过滤器,因为过滤器是税码和字母数字代码(6个字符)...我已经完成了客​​户端验证.现在我应该进行服务器端验证.

直到现在,我们已经使用数据注释来验证请求,但这是一个GET ...所以我的方法有这个签名:

[HttpGet]
public IHttpActionResult GetActivationStatus(string taxCode, string requestCode)
{
    if (ModelState.IsValid)
    {
         ...
    }
}
Run Code Online (Sandbox Code Playgroud)

但是如何使用Data Annotation验证我的ModelState?

谢谢

c# validation rest data-annotations asp.net-web-api

10
推荐指数
1
解决办法
2579
查看次数