多模型asp.net mvc表单帮助
我在想怎么做时有点困难 这是我的设想多模型asp.net mvc表单帮助,asp.net,asp.net-mvc,nested,nested-forms,nested-attributes,Asp.net,Asp.net Mvc,Nested,Nested Forms,Nested Attributes,我在想怎么做时有点困难 这是我的设想 用户必须为其业务创建IncomeDeclaration 但是一个IncomeDeclaration包括许多Activity IncomeDeclaration,用于其业务开展的每个活动 我希望我的表格包括新的IncomeDeclaration的字段以及活动incomedeclarations的字段(显然与该IncomeDeclaration相关) 我知道rubyonrails有一个名为“accepts_nested_attributes_for”的方法,tg
用户
必须为其业务
创建IncomeDeclaration
但是一个IncomeDeclaration
包括许多Activity IncomeDeclaration
,用于其业务开展的每个活动
我希望我的表格包括新的IncomeDeclaration
的字段以及活动incomedeclarations
的字段(显然与该IncomeDeclaration
相关)
我知道rubyonrails有一个名为“accepts_nested_attributes_for”的方法,tgat可能会在这里帮助我
请帮忙 这很容易实现。ASP NET MVC非常具有组合性,您可以使用模板来实现这一点,但继承不是一种可行的方法
因此,解决方案是IncomeDeclaration
包含活动IncomeDeclaration
列表,然后执行以下操作:
for(int i=0; i< Model.Activities.Count; i++)
{
Html.EditorFor(Model.Activities[i]); // you need an editor template (and a display template) for ActivityIncomeDeclarations
}
for(int i=0;i
更多信息:
http://www.dalsoft.co.uk/blog/index.php/2010/04/26/mvc-2-templates/我的这篇博文可以帮助你很多:
但基本上,您将为IncomeDeclaration
提供字段,然后根据需要动态添加ActivityIncomeDeclaration
字段
如果您想实际序列化表单,您必须遵循上面博客文章中提供的说明
但是如果使用jQuery,还有第二种选择。您可以操作一个复杂的JavaScript对象,该对象将是同一服务器端C#类的副本,如:
var incDec = {
Name: ""
// and other properties
ActivityIncomeDeclarations: []
};
然后,当用户添加这些ActivityIncomedRecarations时,您只需调用
incDec.ActivityIncomeDeclarations.push({
// properties
});
然后,我的另一篇博文将帮助您将此对象转换为jQuery可以轻松处理的字典:
通过使用PRL登录博客帖子,您可以轻松做到:
$.ajax({
url: "someURL",
type: "POST",
data: $.toDictionary(incDec),
success: function(data, status, xhr){
// process success
},
error: function(xhr, status, err){
// process error
}
});
你是说它继承了吗?不。。许可证包含许多活动。。。一个许可证有许多(每年的收入)。。每个IncomedRecaration也将有许多活动,因为投稿人必须在退出时提供每个活动的具体细节。这适用于显示现有的IncomeDeclaration
活动以进行编辑。但是如果用户决定删除其中一个或添加一些新的呢?当然,如果你知道怎么做是可能的,但这肯定不再是微不足道的。不过我有一个问题。。。创建操作如何知道保存所有这些数据??。。现在我的创建操作只接收两个参数,int LicenseId和IncomeDeclaration income。。我不确定保存IncomedRecarations是否也会保存所有这些活动IncomedRecarations