C# 使用ViewModel进行MVC验证

C# 使用ViewModel进行MVC验证,c#,validation,asp.net-mvc-3,data-annotations,C#,Validation,Asp.net Mvc 3,Data Annotations,我有EF4实体,用DataAnnotation装饰,我在web.config中启用了客户端验证,以及所有东西。它可以工作,除了在某些视图上,my@model是MyViewModel,其中T是EF4实体之一: public class MyViewModel<T> { public T Entity {get;set;} public string SomeOtherPropertyWhichDoesntNeedValidation {get;set;} } 你能试试这个吗 [M

我有EF4实体,用DataAnnotation装饰,我在web.config中启用了客户端验证,以及所有东西。它可以工作,除了在某些视图上,my@model是MyViewModel,其中T是EF4实体之一:

public class MyViewModel<T>
{
 public T Entity {get;set;}
 public string SomeOtherPropertyWhichDoesntNeedValidation {get;set;}
}
你能试试这个吗

[MetadataType(typeof(TextMeta))] 
public partial class Text {}

public class TextMeta 
{
    [Required(ErrorMessage="This is required!!!")]
    public string Title { get; set; } 
}
你能试试这个吗

[MetadataType(typeof(TextMeta))] 
public partial class Text {}

public class TextMeta 
{
    [Required(ErrorMessage="This is required!!!")]
    public string Title { get; set; } 
}

您可以从字符串属性中期望什么样的隐式验证?还是你实现了手动的?@Vincent Vancalbergh:我已经编辑了这个问题。如果你返回MyViewModel进行查看,那么验证将不会发生。如果你已经返回了“课堂文本”,那么我不明白为什么它不起作用。发布控制器并在此处查看我返回
MyViewModel
。如何对文本属性(在
实体
属性内)启用验证?您希望从字符串属性中得到什么样的隐式验证?还是你实现了手动的?@Vincent Vancalbergh:我已经编辑了这个问题。如果你返回MyViewModel进行查看,那么验证将不会发生。如果你已经返回了“课堂文本”,那么我不明白为什么它不起作用。发布控制器并在此处查看我返回
MyViewModel
。如何启用文本属性的验证(在
实体
属性内)?我看不出这与我的原始代码有什么不同。。。(除了不是嵌套类之外)嵌套是一个变化,显式地将元类声明为public是第二个变化。你试过我的方式吗?我附近没有这个项目:)我不知道这和我原来的代码有什么不同。。。(除了不是嵌套类之外)嵌套是一个变化,显式地将元类声明为public是第二个变化。你试过我的方法吗?我附近没有这个项目:)