【发布时间】:2012-04-27 17:15:23
【问题描述】:
我有一个 ViewModel,我想在发布时自动绑定到另一个 ViewModel。
例如。如果我有
public class ViewModelA{
public string Stuff {get;set;}
}
public class ViewModelB{
public string MyStuff {get;set;}
.
.
.
}
出于显示/渲染的目的,我希望将部分绑定到 ViewModelA,因为它是一个更简单的对象,因此它有望更加可重用,因为创建交互式视图是一个代价高昂的提议。
但是,我需要在帖子页面上的所有表单信息。我想我可以扩大控制器操作以同时采用 ViewModelA 和 ViewModelB,然后执行额外的逻辑将 ViewModelA 属性分配给 ViewModelB,但是有没有更简洁、更具声明性的方式来做到这一点?
我想我想知道我是否可以标记 ViewModelA,具有如下属性:
[Bind(Prefix = "ViewModelB", Include = "MyStuff")]
我知道我可以在操作级别执行此操作,但我可以在 ViewModel 级别注入此逻辑吗?
如果 Razor 遵循更多的 CQRS 方法,那也很好。例如。
Html.TextBoxFor(target => target.Property, model => model.Property2)
因此,在渲染时,文本框使用 Property2 值初始化,但在发布时,它被发布到 target.Property。
【问题讨论】:
标签: c# .net asp.net-mvc asp.net-mvc-3