2009-06-17 4 views
1

は、私は次のことを持っていると言う:ダイナミックコントロール

 
public class Person{ 
    public int ID {get; set;} 
    public string Name {get; set;} 
} 

public class Phone{ 
    public int ID {get; set;} 
    public string PhoneNumber {get; set;} 
} 

public Class AddEditViewModel{ 
    public Person MyPerson{get; set;} 
    public List MyPhones{get; set;} 
} 

私は私のMVCアプリで作成/編集アクションを作成したい - ページが

ViewPage<AddEditViewModel>
と私から継承しますエンドユーザが「電話」(0〜5台の電話機のいずれか)を追加するためのフィールドを動的に追加できるようにします。どのように私のコントローラの作成/編集メソッドにそのデータを渡すでしょう。私は以下を試しましたが、何も電話番号を取得していないようです。これで

 
[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Create(AddEditViewModel data){} 

私がnull

== data.MyPerson.Nameを呼び出し、値ではなく、data.MyPhonesを得ることができます私の質問は次のようになります。1のことができるようにするビューとコントローラをセットアップする方法を上記のコードで複数の電話オブジェクトを持つ1人の人物オブジェクトを作成する追加/編集ページを1つ送信しますか?

答えて

1

あなたの質問を正しく理解している場合は、電話番号のリストへのバインドについて質問しています。フィルハーackは、行う方法のポストを持っていますmodel binding to a list

これは役立ちます。

+0

あなたは私の質問を完全に理解しました。カスタムオブジェクトのリストを使ってこのことを保証できます。 – Rob

0

MVCビューでダイナミックコントロールを作成し、モデルにバインドすることができます。たとえば、ビューモデルクラスまたはモデルクラスでリストコレクションを使用したり、ビューで動的コントロールを作成したりすることができます。モデルプロパティと自動的にバインドされます。

0

あなたは5つの電話番号があることを知っているなら、あなたはこれが5テキストボックスを追加し、あなたがあなたの中の値は、モデル

public class Book 
{ 
    public string Title { get; set; } 
    public string Author { get; set; } 
    public DateTime DatePublished { get; set; } 

} 

public class BookViewModel 
{ 
    public List<Book> Books { get; set; } 

} 

ビュー

@model MVCLearning.Models.BookViewModel 

@{ 
    using (Html.BeginForm("Submit", "Dynamic")) 
    { 

    if (Model.Count > 0 && Model != null) 
    { 
     for (int i = 0; i < 5; i++) 
     { 
      <div id="[email protected]"> 
       @Html.TextBoxFor(m => Model.Books[i].Title) 
      </div> 
     } 
     <input type="submit" value="Submit" /> 

    } 

} 
} 
を見るでしょう提出になります。この例を試すことができます
関連する問題