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

これらの主題をカバーし、フォームが送信されたときにそれらをバインドできるように、デフォルトのモデルバインダーが期待する入力フィールドの命名規則を説明する次の記事をチェックアウトする必要があります。

于 2012-06-28T16:48:42.387 に答える
1

フォームフィールドの名前を生成する際に以下のパターンに従うと、デフォルトのモデルバインダーが残りの処理を行います。それ以外の場合は、モデルのバインドプロセスを自分で行う必要があります(大変な作業です)。

ReportId、

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 に答える