0

我有一个模型,其中包含其他模型的列表,其中还包含其他模型类型的列表,例如:

public class Report
{
    public string ReportId {get; set;}
    public List<ReportOutput> ReportOutputs;
}

//output types = PDf, csv, txt, etc.
public class ReportOutput
{   
    public int OutputType {get; set;}
    public List<DeliveryMethod> DeliveryMethods;
}

//delivery methods = email, ftp, etc.
public class DeliveryMethod
{
    public string MethodName {get; set;}
}

我有一个使用 jQuery 根据这些对象的内容动态创建元素的视图。该视图允许用户选中复选框以添加或删除不同的输出,并在每个输出中使用不同的交付方法。我需要知道如何将信息返回到控制器以加载到模型中以发送回数据库。通过阅读,似乎我只需要在控制器中实例化一个模型,然后为视图中的每个元素指定一个与模型属性相对应的名称,然后调用控制器函数来检索所有数据并继续保存新填充的模型,但我创建此控制器功能的尝试失败了。

所以我的问题是,我将如何创建控制器功能,我是否只需要在 html 元素上使用相应的名称来允许根据视图上的信息创建模型?

4

2 回答 2

1

如果您在生成表单字段名称时遵循以下模式,默认模型绑定器将负责其余的工作,您必须自己完成模型绑定过程(艰巨的工作!)。

报告编号,

ReportOutputs[0].OutputType,

ReportOutputs[0].DeliveryMethods[0].MethodName,

ReportOutputs[0].DeliveryMethods[1].MethodName,

ReportOutputs[1].OutputType,

ReportOutputs[1].DeliveryMethods[0].MethodName,

于 2012-06-28T17:20:10.507 回答
1

您应该查看以下涵盖这些主题的文章,并解释默认模型绑定器期望的输入字段的命名约定,以便在提交表单时将它们绑定回来。

于 2012-06-28T16:48:42.387 回答