【发布时间】:2011-03-31 00:51:47
【问题描述】:
我想使用 DataAnnotations 对我的 MVC ViewModel 进行基本的客户端和服务器端验证。我的 ViewModel 如下所示:
public class MyViewModel
{
public Client Client1 { get; set; }
public Client Client2 { get; set; }
public Product Product { get; set; }
}
所以我想检查两个客户对象是否都有姓名和电话号码,产品对象是否有有效的数字价格等。
我遇到的问题是Client 和Product 都是Visual Studio 从Web 服务生成的代理类型,所以我不能直接将注释属性添加到它们所需的属性中。
我已经阅读了using the MetadataType attribute 以在替代类中指定元数据(具有重复属性),但在这种情况下,我什至无法将该属性添加到 Client 和 Product 类中。
或者我可以吗?在保存我的 VS 解决方案的 Web References 文件夹中,有一个用于 Web 服务命名空间的文件夹,其中包含一个名为 Reference.cs 的文件,其中包含 VS 为代理类型生成的代码。
如果我将元数据添加到此处的类中,这会起作用吗?还是弄乱生成的代码是一个非常糟糕的主意?还是有更简单、更清洁的方法来做到这一点?
【问题讨论】:
标签: asp.net-mvc visual-studio-2008 validation model metadata