问题描述
||
我有来自应用程序另一部分的一组模型类,这些类不能被修改。这些没有我需要的验证属性(例如,RemoteAttribute)。我该如何添加这些?我无法将[MetadataTypeAttribute]添加到模型中。
为了显示:
//in Models.dll
//remember: I can\'t modify this
public class Product
{
string Name { get; set; }
}
//in Web.dll
public class ProductController
{
// GET: /Product/
public ActionResult Index()
{
return View(new Product());
}
}
//what i need:
public class ProductMetadata
{
[Remote(\"Foo\",\"Bar\")]
[RegularExpression]
string Name { get; set; }
}
不创建viewmodel类或类似的东西,这是否有可能?
解决方法
是否可以以任何方式在不创建ViewModel类的情况下
假设正确构建的ASP.NET MVC应用程序应始终使用视图模型,则只能从引入它们中受益。除了解决此特定问题和数以百计的其他潜在问题之外,您还将拥有一个结构合理的ASP.NET MVC应用程序:-)
将模型绑定到控制器(这就是“ 1”的作用),就该模型在其他应用程序中的可重用性而言,这似乎是一个可怕的想法。