标签: data-annotations

数据注释的实体框架t4模板在哪里?

我一直在谷歌搜索这个不停的2天,并且找不到一个完整的,可以使用的,完全实现的生成DataAnnotations的t4模板.他们甚至存在吗?

我使用标准t4模板生成POCO.实际的数据库表具有描述一些验证规则的元数据,例如not null,nvarchar(25)等.

所以我想要的是一个t4模板,可以使用我的表并生成带有 DataAnnotations 的POCO ,例如

public class Person
{

[Required]
[StringLength(255)]
public FirstName {get;set}

}
Run Code Online (Sandbox Code Playgroud)

这是一个基本的和基本的要求,当然我不能成为全世界第一个有这个要求的人吗?我不想在这里重新发明轮子.然而,经过几天的高低搜索,我还没有找到它.

这必须是可能的(并且希望必须在某处才可以下载) - 当数据库中已经存在这些注释的元数据时,必须手动输入这些注释是犯罪上的错误.

c# asp.net entity-framework data-annotations

18
推荐指数
1
解决办法
4406
查看次数

MVC:覆盖默认的ValidationMessage

在MVC的世界里,我有这个视图模型......

public class MyViewModel{

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

......在我看来......这种事情......

<%= Html.ValidationSummary("Please correct the errors and try again.") %>
<%= Html.TextBox("FirstName") %>
<%= Html.ValidationMessage("FirstName", "*") %>
Run Code Online (Sandbox Code Playgroud)

我的问题:如果我提交此表单而不提供名称,我会收到以下消息"FirstName字段是必需的"

好.所以,我去改变我的财产......

[DisplayName("First Name")]
[Required]
public string FirstName{ get; set; }    
Run Code Online (Sandbox Code Playgroud)

..现在得到"名字字段是必需的"

到目前为止都很好.

所以现在我想要错误信息显示"名字Blah Blah".如何覆盖默认消息以显示DisplayName +"Blah Blah",而不是用类似的东西注释所有属性

[Required(ErrorMessage = "First Name Blah Blah")]
Run Code Online (Sandbox Code Playgroud)

干杯,

ETFairfax

asp.net-mvc html-helper data-annotations

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

在Windows窗体项目上使用DataAnnotations

我最近使用ASP.Net MVC和DataAnnotations,并考虑使用相同的方法进行Forms项目,但我不知道如何去做.

我已经设置了我的属性,但是当我单击"保存"时似乎没有检查它们.

更新:我使用了Steve Sanderson的方法来检查我的类的属性并返回一组错误,如下所示:

        try
        {
            Business b = new Business();
            b.Name = "feds";
            b.Description = "DFdsS";
            b.CategoryID = 1;
            b.CountryID = 2;
            b.EMail = "SSDF";
            var errors = DataAnnotationsValidationRunner.GetErrors(b);
            if (errors.Any())
                throw new RulesException(errors);

            b.Save();
        }
        catch(Exception ex)
        {

        }
Run Code Online (Sandbox Code Playgroud)

您如何看待这种方法?

c# asp.net-mvc winforms data-annotations c#-3.0

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

MVC数据注释将一个属性与另一个属性进行比较?

我一直在玩MVC2中的数据注释,如果有一个注释来比较2个属性(即密码,确认密码),我很好奇吗?

asp.net-mvc data-annotations

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

为什么我不能将资源用作具有DataAnnotations的ErrorMessage?

我为什么不能这样做?

[Required(ErrorMessage = "*")]
[RegularExpression("^[a-zA-Z0-9_]*$", ErrorMessage = Resources.RegistrationModel.UsernameError)]
public string Username { get; set; }
Run Code Online (Sandbox Code Playgroud)

告诉我的错误信息是什么?

属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式.

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

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

DataAnnotations - 禁止数字,或仅允许给定字符串

是否可以使用ASP.NET MVC 2的DataAnnotations只允许字符(无数字),甚至提供允许字符串的白名单?例?

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

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

MVC 3中DataAnnotations的整个默认错误消息列表在哪里

又一个MVC本地化问题......

我正在尝试使用本地化的资源文件本地化ASP.Net MVC 3应用程序,以按照建议在视图中显示文本.

像往常一样,问题是尝试从数据注释本地化默认错误消息时.

我知道你可以在每个属性中指定资源文件和密钥:

[Required(
ErrorMessageResourceType = typeof(CustomResourceManager), 
ErrorMessageResourceName = "ResourceKey")]
public string Username { get; set; }
Run Code Online (Sandbox Code Playgroud)

甚至,这是更好和首选,您可以覆盖默认消息,如下所示:ASP.NET MVC中的数据注释的默认资源,因此您可以保留属性,如:

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

最后一种方法是我正在遵循的方法,并且它可以工作,但只有当您要覆盖的DataAnnotation具有ONE和ONLY ONE错误消息时,因为它总是查找与自定义资源文件中的属性相同的资源键(例如"Required"需要资源文件中的"RequiredAttribute"条目)

其他属性(如StringLength)具有多个错误消息,具体取决于您使用的可选参数.所以,如果你有一个像这样的模型:

public class Person
{
    [Required]
    [StringLengthLocalizedAttribute(10, MinimumLength = 5)]
    [Display(Name = "User name")]
    public string UserName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

错误消息是" 字段用户名必须是最小长度为5且最大长度为10的字符串. "

如果您将StringLength属性更改为:

    [StringLengthLocalizedAttribute(10)]
Run Code Online (Sandbox Code Playgroud)

错误消息更改为" 字段用户名必须是最大长度为10的字符串. "因此,在这种情况下,至少有2个默认错误消息要覆盖,@ kim-tranjan给出的解决方案失败.

我对此的部分解决方案是实现我自己的StringLength属性,如下所示:

public class StringLengthLocalizedAttribute : …
Run Code Online (Sandbox Code Playgroud)

localization data-annotations asp.net-mvc-3

17
推荐指数
2
解决办法
8199
查看次数

从PropertyInfo获取DisplayAttribute属性

class SomeModel
{
    [Display(Name = "Quantity Required")]
    public int Qty { get; set; }

    [Display(Name = "Cost per Item")]
    public int Cost { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试将模型映射到对列表中{ PropertyName, DisplayName },但我已经卡住了.

var properties 
    = typeof(SomeModel)
        .GetProperties()
        .Select(p => new 
            {
                p.Name,
                p.GetCustomAttributes(typeof(DisplayAttribute),
                              false).Single().ToString()
            }
        );
Run Code Online (Sandbox Code Playgroud)

以上不编译,我不确定这是正确的方法,但希望你能看到意图.有什么指针吗?谢谢

.net c# reflection propertyinfo data-annotations

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

必需的数据注释未被翻译

我们面临着必需属性本地化的奇怪错误.

我们有以下代码:

    public class AnswersGroupViewModel
    {
        public int IDAnswerGroup { get; set; }
        public int IDEvaluator { get; set; }
        public List<AnswersViewModel> Answers { get; set; }
    }

    public class AnswersViewModel
    {        
        public string Text{ get; set; }      
        [Required(ErrorMessageResourceName = "RequiredMessage", ErrorMessageResourceType = typeof(Resources.Language))]
        public int IDAnswer{ get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

问题是"RequiredMessage"的正确翻译没有从资源文件中获取,尽管它存在(我们在西班牙语和俄语资源文件上都有RequiredMessage).

像Display这样的属性正在工作和被翻译,但似乎是Required属性的问题.

这是一个示例图像:

标签被翻译成俄语,但所需的消息是西班牙语

使用@ Html.ValidationMessage显示错误

在此先感谢您的帮助.

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

17
推荐指数
1
解决办法
2778
查看次数

DataType与UiHint

我一直在使用mvc2一段时间,当我需要设置模板时,我使用DataType属性

    [DataType("DropDown")]
    public int Field { get; set; }
Run Code Online (Sandbox Code Playgroud)

我看到其他人使用UiHint来实现相同的结果

    [UiHint("DropDown")]
    public int Field { get; set; }
Run Code Online (Sandbox Code Playgroud)

使用这两个属性有什么区别?我应该正常使用哪个属性,还是用于不同的任务?

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

16
推荐指数
1
解决办法
4482
查看次数