2016-08-26 18 views
0

私は問題に直面しました。私は依存関係を持つコレクションを投稿する方法を理解できません。 コードを見せて、私が達成しようとしていることをもっと明確にするでしょう。ASP.NET MVC複雑なモデルを投稿する方法

私はViewModelに持っている:あなたが最初のViewModelがリストを持って見ての通り

public class Pos 
{ 
    public int PosNumber { get; set; } 
    public string PosDescription { get; set; } 
} 

public class ProjectViewModel : BaseViewModel 
{ 
    public int Id { get; set; } 
    public string Customer { get; set; } 
    public string CustomerRepresentative { get; set; } 
    public string ProjectTitle { get; set; } 
    public string WWSNumber { get; set; } 
    public List<Los> Service { get; set; } 
} 

LosViewModel:

public class Los 
{ 
    public int LosNumber { get; set; } 
    public string Service { get; set; } 
    public List<Pos> Pos { get; set; } 
} 

順位ビューモデルを。ユーザーがLosNumberを埋めてサービスに入ると、PosNumberとPosDescriptionを追加できます。

私はこのようなモデルを投稿する方法を見つけることができません。 私が見つけたのは、このようなModelViewmを表示する方法ですが、編集はできません。

多分誰かがこのような問題に直面していたでしょうか?どんな助け?

+1

ビューを表示できますか? –

+0

あなたの問題は複雑な投稿よりも大きく見えます。これは実際に複雑なモデルではありません、MVCはあなたの投稿されたデータをシリアル化する方法を知っています。あなたのpostメソッドは受信パラメータとしてモデルタイプを持つだけです。 public ActionResult MyPostMethod(ProjectViewModel model) – pmeyer

+0

これが問題であるか、ビューレベルで投稿を実行する方法がわからない場合は、わかりません。 – pmeyer

答えて

0

コレクションをビューのforループに配置し、オブジェクトをコレクションのインデックスで参照する必要があります。 MVCは、これをコレクションに戻すときにコレクションであることを理解するのに十分スマートです。 TextBoxFor(m => Model.Service [i] .LosNumber)のようなものです。コレクション内のコレクションはおそらくネストされたforループにすぎません。

MVC Razor view nested foreach's model

+0

それはあなたが表示するオブジェクトの長さがわかっているときのアプローチです。しかし、私の場合、リストにどれくらいの要素があるかはわかりません。 インデックス付きのEditorForボックスを動的に作成する方法を尋ねる必要があります。 –

+0

あなたはリスト上のカミソリの中でforループを行うことができます。そうすれば、インデックスを取得してコントロールを生成することができます。 – pmeyer

+0

@pmeyerオブジェクトの長さを知らずにどのようにループしているか教えてください。 –

関連する問題