2

私はこれを行う方法を理解するのに少し問題があります。

これが私のシナリオです

彼のためにをUser作成する必要があります。IncomeDeclarationBusiness

しかし、彼のビジネスが行われているそれぞれIncomeDeclarationの多くが含まれています。ActivityIncomeDeclarationsActivity

私のフォームには、新しいIncomeDeclarationフィールドとActivityIncomeDeclarations(明らかにそれに関連するIncomeDeclaration)の​​フィールドを含めたいと思います。

rubyonrailsには「accepts_nested_attributes_for」というメソッドがあることを知っています。tgatはおそらくここで私を助けてくれるでしょう。

助けてください!

4

2 に答える 2

1

これは非常に簡単に実現できます。ASP NET MVCは非常に構成的であり、テンプレートを使用してこれを実現できますが、継承はその方法ではありません。

したがって、解決策はIncomeDeclaration、のリストを含めてからActivityIncomeDeclarationsこれを行うことです。

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
}

より詳しい情報:

http://www.asp.net/mvc/videos/mvc2-template-customization http://www.dalsoft.co.uk/blog/index.php/2010/04/26/mvc-2-templates/

于 2011-02-22T19:28:39.597 に答える
1

私のこのブログ投稿はあなたにたくさん役立つことができます:

List<T>へのAsp.netMVCモデルのバインド

ただし、基本的にはフィールドを提供し、必要に応じてIncomeDeclaration動的にフィールドを追加ActivityIncomeDeclarationします。

フォームを実際にシリアル化したい場合は、上部のブログ投稿に記載されている指示に従う必要があります。

ただし、jQueryを使用する場合は、2番目の選択肢もあります。次のように、同じサーバー側のC#クラスのコピーとなる複雑なJavaScriptオブジェクトを操作できます。

var incDec = {
    Name: ""
    // and other properties
    ActivityIncomeDeclarations: []
};

次に、ユーザーがこれらのActivityIncomeDeclarationsを追加している間、常に単に呼び出します

incDec.ActivityIncomeDeclarations.push({
    // properties
});

次に、他のブログ投稿で、このオブジェクトを、たとえばjQueryで簡単に処理できる辞書に変換できるようになります。

jQueryを使用して複雑なJSONオブジェクトをAsp.netMVCに送信する

prloginのブログ投稿を使用すると、次のことが簡単にできます。

$.ajax({
    url: "someURL",
    type: "POST",
    data: $.toDictionary(incDec),
    success: function(data, status, xhr){
        // process success
    },
    error: function(xhr, status, err){
        // process error
    }
});
于 2011-02-22T19:30:19.517 に答える