标签: data-annotations

.NET:一般的DataAnnotation属性

ASP.NET MVC 2将支持基于DataAnnotation属性的验证,如下所示:

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

如何使用纯.NET(不使用MVC绑定,控制器方法等)检查当前模型状态是否有效?

理想情况下,这将是一个单一的方法:

bool IsValid(object model);
Run Code Online (Sandbox Code Playgroud)

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

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

我可以将MVC 2 DataAnnotation属性添加到现有属性吗?

我使用生成的类作为模型,我希望将DataAnnotation属性添加到它的一些属性中.因为它是生成的代码,所以我不想直接添加注释.还有另一种方法将它们附加到财产上吗?

我考虑过将模型作为接口,并使用部分类来生成类以订阅它.是否有一个不太精细的解决方案,假设它甚至可以工作?

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

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

如何在ASP.NET MVC2中使用和/或本地化DisplayAttribute?

可能重复:
来自Resources的DisplayName属性?

我试图弄清楚如何在我的MVC 2 ViewModel中使用DisplayAttribute来使用Html.LabelFor()帮助器.

也不

public class TestModel
{
    [Display(ResourceType = typeof(Localization.Labels))]
    public string Text { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

也不

public class TestModel
{
    [Display(Name = "test")]
    public string Text { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

似乎工作.本地化必需属性按预期工作:

[Required(ErrorMessageResourceName = "Test", ErrorMessageResourceType = typeof(Localization.Labels))]
Run Code Online (Sandbox Code Playgroud)

我正在使用VS2010 RC.有人跑了吗?

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

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

ASP.NET MVC 2显示名称DataAnnota from资源不起作用

我正在尝试使用资源文件在MVC 2项目中保存模型的标签文本.

我有以下课程......

public class Person
{
    [Display(ResourceType = typeof(Resources.Labels),Name="First")]
    public string FirstName { get; set; }
    public string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

......并尝试过使用......

    <%: Html.EditorForModel() %>
    <%: Html.EditorFor(m => m) %>
    <%: Html.LabelFor(m => m.FirstName) %>
Run Code Online (Sandbox Code Playgroud)

...但我在所有实例中都获得了标签的"FirstName".资源文件名为Labels.resx,具有"First"条目,位于Properties文件夹中.

阅读了几篇文章后,我相信这应该适用于.NET 4(我使用的是VS2010 RTM并且已经针对.NET 4).

这有用吗?

提前致谢

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

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

使用EF POCO类作为MVC 2模型(带数据注释)

我有一个用C#... .Net 4.0编写的4层Web应用程序:

  • UI层
  • 业务层
  • 数据访问层
  • 实体层

我的数据层包含一个edmx我的实体层包含我的POCO对象(由t4脚本生成),并且该层在所有其他层中引用.

例如,在创建MVC表单以创建新客户时....我已经在我的实体层中拥有了包含名字,姓氏等字段的客户类,但该自动生成的POCO类没有数据注释用于验证...提交表单时的IE [必需]等

我现在的解决方案是创建新的模型类,它与我的poco类几乎相同,但也有这些额外的验证注释.

我想知道的是,在MVC模型中(在UI层中)使用某些POCO对象是一种简单的方法,而不必几乎重写类...而且还没有修改生成这些POCO类的t4(因为我在t4上没有达到速度.

我在stackoverflow http://automapper.codeplex.com/上的另一篇文章中看到了这个...不确定这是否会这样做或者是最好的解决方案.

validation asp.net-mvc poco n-layer data-annotations

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

EF4 CodeFirst CTP5 nvarchar(max)via属性

有没有办法创建一个自定义属性,使EF CodeFirst 在分配给poco类的属性时使用nvarchar(max)作为数据类型?我知道这可以通过流畅的api实现,但我们希望将所有定义放在一个地方,这就是元数据类.

流畅的API:

modelBuilder.Entity<Event>().Property(p => p.TicketText).HasColumnType("nvarchar(max)");
Run Code Online (Sandbox Code Playgroud)

fluent-interface code-first entity-framework-4 data-annotations ef4-code-only

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

是否有可能"入侵"ASP.NET MVC 3中支持的不引人注意的验证?

我希望能够使用内置的,基于数据注释的,客户端不显眼的验证,但在我知道它通过之后,我自己做了ajax表单提交.

像这样的jQuery位:

$('#form').submit(function(e) {
  e.preventDefault();

  if (PassesUnobtrusiveValidation()) {
    // ajax submit form
  }
});
Run Code Online (Sandbox Code Playgroud)

是否存在PassedValidation事件或类似事件(内置于默认的基于asp.net mvc 3数据注释的客户端验证)我可以挂钩(如示例中的伪代码)?

我想这样做,所以我仍然可以利用基于数据注释的验证,然后以我想要的方式异步提交表单.我希望避免在客户端编写常见的验证,让asp.net mvc 3为我处理它,然后提交表单我想要的,使用$.ajax();

validation jquery unobtrusive-javascript data-annotations asp.net-mvc-3

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

数据注释要进行舍入

嗨我在我的一个模型中有一个属性是:

[Required(ErrorMessage = "Total (Exc. GST) is a required field.")]
[Display(Name = "Total (Exc. GST):")]
[DataType(DataType.Currency)]
public virtual decimal TotalExcludingGst { get; set; }
Run Code Online (Sandbox Code Playgroud)

它上面有货币注释.

问题是当它在验证期间发生问题时它会显示4个小数位,例如

57500.0000

无论如何都要添加一个注释,使得这两个小数位在验证消息中?

entity-framework data-annotations

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

使用DataAnnotations比较输入到数据库的电子邮件地址

我在MVC的模型中有一个类:

public class NewModel
{
    public bool AllComplexes { get; set; }
    public int UserID { get; set; }
    public int? RoleID { get; set; }
    public int ComplexID { get; set; }

    [Required(ErrorMessage = "Please enter a user name."), StringLength(50)]
    public string Username { get; set; }

    [Required(ErrorMessage = "Please enter Password"), StringLength(100, ErrorMessage = "Password cannot be longer than 100 characters")]
    public string Password { get; set; }

    [Compare("Password", ErrorMessage = "Passwords do not match")]
    [Required(ErrorMessage = "Please …
Run Code Online (Sandbox Code Playgroud)

c# email asp.net-mvc modelstate data-annotations

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

为什么实体框架尝试插入现有实体?

我正在使用Entity Framework(采用代码优先方法),并且使用预期的外键和唯一键约束成功创建了数据库。

我有这两个模型类:

public class Foo 
{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public Guid Id { get; set; }

    public Bar Bar { get; set; } 
}

public class Bar
{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public Guid Id { get; set; }

    [Index(IsUnique = true), StringLength(512)]
    public string Url { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

而这个应用程序代码:

var foo = GetData();

using (DatabaseContext db = new DatabaseContext())
{
    db.Entry(foo).State = EntityState.Added;

    if (foo.Bar != null)
    {
        var bar = await db.Bar.FirstOrDefaultAsync(x => x.Url == foo.Bar.Url);

        if (bar …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework navigation-properties data-annotations ef-code-first

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