我有一个视图(实际上是一个编辑器模板),用于输入父对象的子集合中的每个项目。asp.net mvc - 更改视图中的默认属性值
伪代码:
public class MyParent {
public int MyParentID;
public virtual ICollection<MyChild> Children;
}
我有一些jQuery的是动态正在呼叫在控制器的方法和加入我到DOM局部视图。为了使模型结合工作中,HTML需要看起来像这样:
<input name="Parent[0].PropertyA ... />
但控制器总是返回此:
<input name="PropertyA ... />
...等模型结合将无法绑定子元素放入子集合中。
我开始对返回的HTML进行一些javascript/jQuery操作,以手动插入“Parent [0]”。到名称属性中。我仍然可以这样做,但它非常冗长。
我想到了另一个想法...视图允许您操纵HTML输出。例如,如果我把这个放在我看来:
@Html.HiddenFor(r => r.PropertyA, new { random="myRandomValue"})
...它会添加一个随机属性。所以我试图做到这一点:
@Html.HiddenFor(r => r.PropertyA, new { name="Parent[0].PropertyA"})
但它不会改变名称属性。看起来这个HiddenFor的重载只会增加额外的属性,但不会改变默认属性。
我的问题:是否有一种干净的方式来改变'name'属性,以便输出将与回发时的模型绑定一起使用?
这不是一个答案(实际上是在自我宣传,所以我希望这条评论不会持续很长时间),但我写了这个HTTP ://formfactory.apphb.com/而不是EditorTemplates。它正确处理集合。 – mcintyre321