1

HTMLフォームから投稿データを取得しています。出てくるデータは、TextualReportオブジェクトを構築するために使用されます。出てくるさまざまなフォームデータを解析して、モデルのそれらの部分にデータを入力したいと思います。

モデルバインダーを使用していない理由は、これはかなり複雑なオブジェクトであり、リストのインデックスが欠落している可能性があるためです(2から開始し、3をスキップするなど)。私は既存のオブジェクトから始めて、投稿で出てきたプロパティだけを置き換えています。

次のオブジェクトがありますTextualReport

public class TextualReport {

    public IList<Section> Sections { get; set; }
    public IList<string> MiscInputs { get; set; }

    public TextualReport(){
        Sections = new List<Section>();
        MiscInputs = new List<string>();
    }
}

public class Section{
    public Section(){
        Id = Guid.NewGuid();
        Blocks = new List<Block>();
    }

    public Guid Id { get; set; }
    public string Heading { get; set; }
    public IList<Block> Blocks { get; set; }
}

public class Block{
    public Block(){
        PreGraphText = new List<string>();
        PreGraphInput = new List<string>();
        Graphs = new List<Graph>();
        PostGraphText = new List<string>();
    }
    public Guid Id { get; set; }
    public string Heading { get; set; }
    public IList<string> PreGraphText { get; set; }
    public IList<Graph> Graphs { get; set; }
    public IList<string> PostGraphText { get; set; }
    public IList<string> PreGraphInput { get; set; }
}

public class Graph{
    public string Url { get; set; }
    public string Caption { get; set; }
}

HTML / Razorフォームから、次のような一連のテキスト文字列を取得します。

TextualReport.Sections[1].Blocks[0].Graphs[0].Caption=
TextualReport.Sections[1].Blocks[0].Graphs[1].Caption=
TextualReport.Sections[1].Blocks[0].Graphs[2].Caption=
TextualReport.Sections[1].Blocks[0].PreGraphInput[0]=
TextualReport.Sections[1].Blocks[0].PreGraphInput[1]=
TextualReport.Sections[1].Blocks[1].Graphs[0].Caption=
TextualReport.Sections[1].Blocks[1].PreGraphInput[0]=
TextualReport.Sections[1].Blocks[1].PreGraphInput[1]=
TextualReport.Sections[1].Blocks[2].Graphs[0].Caption=
TextualReport.Sections[1].Blocks[2].Graphs[1].Caption=
TextualReport.Sections[1].Blocks[2].PreGraphInput[0]=
TextualReport.Sections[1].Blocks[2].PreGraphInput[1]=
TextualReport.Sections[1].Blocks[3].Graphs[0].Caption=
TextualReport.Sections[1].Blocks[3].PreGraphInput[0]=
TextualReport.Sections[1].Blocks[3].PreGraphInput[1]=
TextualReport.Sections[1].Blocks[4].Graphs[0].Caption=
TextualReport.Sections[1].Blocks[4].PreGraphInput[0]=
TextualReport.Sections[1].Blocks[4].PreGraphInput[1]=

フォームの投稿で出てきたさまざまな部分を既存のデータに入力するための最良のアプローチは何でしょうか?データベースからモデルを取得し、新しいデータに基づいて更新します。

4

0 に答える 0