ASP.NET MVC3 - 不可变模型 - 添加验证属性

时间:2011-05-24 13:16:38

标签: c# .net validation asp.net-mvc-3 metadata

我有一组来自应用程序另一部分的模型类,无法修改。它们没有我需要的验证属性(例如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类或类似的东西,这是否可行?

1 个答案:

答案 0 :(得分:4)

  

如果不创建ViewModel类

,这是否可行?

假设正确构建的ASP.NET MVC应用程序应始终使用视图模型,您只能从引入它们中受益。除了解决这个特殊问题和数百个潜在的其他问题,您还将拥有一个正确构建的ASP.NET MVC应用程序: - )

将模型绑定到控制器(这是RemoteAttribute将要执行的操作)对于此模型在其他应用程序中的可重用性而言似乎是一个可怕的想法。