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

C# ASP.NET MVC3-不可变模型-添加验证属性,c#,.net,validation,asp.net-mvc-3,metadata,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

我有一组来自应用程序另一部分的模型类,不能修改。这些没有我需要的验证属性(例如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应用程序:-)

将您的模型绑定到控制器(这是
RemoteAttribute
将要做的事情)对于该模型在其他应用程序中的可重用性来说似乎是一个可怕的想法

在不创建ViewModel类的情况下,这是否可能

假设一个架构合理的ASP.NET MVC应用程序应该始终使用视图模型,那么引入视图模型只能使您受益。除了解决此特定问题和数百个潜在的其他问题外,您还将拥有一个结构正确的ASP.NET MVC应用程序:-)


将您的模型绑定到控制器(这是
RemoteAttribute
将要做的事情)对于该模型在其他应用程序中的可重用性来说似乎是一个可怕的想法。

我不确定“唯一的好处”是什么。这会增加复杂性(映射视图模型),因此在特定情况下,会以负面方式影响可维护性。但我看到了它的优点,这似乎是应该走的路。我不确定“唯一的好处”是什么。这会增加复杂性(映射视图模型),因此在特定情况下,会以负面方式影响可维护性。但我看到了它的优点,这似乎是一条路要走。不可变?我想你是说,不可改变?我想你是说。