我正在考虑一个自定义模型绑定器的值,该绑定器可以实例化在我的域层中定义的不可变值对象。然后我可以通过堆栈传递它们,并将它们设置在适当的实体上。有人试过吗?运气好吗?你认为这是个愚蠢的想法吗?
如果“值对象”是指只能通过将值传递给构造函数而不是绑定到字段来创建的对象,我认为您有以下解决方案:
编写一个自定义的活页夹——尽管我现在不能告诉你如何同时访问其中的几个字段。
传递视图模型(允许绑定到其字段),然后将其转换为值对象。使用反射(几行)编写一个简单的转换器。您必须按名称或类型关联视图模型属性和构造函数参数。您可以让视图模型定义相应的值类型,并在操作过滤器/OnActionExecuting中自动调用Converter。这是一种半自动的模型绑定。
将类似formcollection的内容传递给action,然后调用反射方法,如var value=bindvalue<valuetype>(formcollection)。