2

これが私のモデルです

namespace chPayroll.Models.CustInformations
{
    public class CustContact
    {
        public int cId { get; set; }
        public int cNoType { get; set; }
        public string cNo1 { get; set; }
        public string cNo2 { get; set; }
        public string cNo3 { get; set; }
        public List<CustContact> contact { get; set; }
    }
}

これが私のeditorTemplatesです

@model chPayroll.Models.CustInformations.CustContact         


@Html.TextBoxFor(model => model.cNo1)
@Html.TextBoxFor(model => model.cNo2)
@Html.TextBoxFor(model => model.cNo3)

メールを受信するためのテキストボックスを3つ、電話番号を取得するためのテキストボックスを3つ表示する必要があります。ビューで。モデルで定義された連絡先リストにアイテムを追加して、次のように表示するにはどうすればよいですか。

email:--textbox1----textbox2----textbox3--
telephone:--textbox1----textbox2----textbox3--

コントローラーに値を送信します

実際、私はここに連絡先という名前のリストでデータを送信しようとしています。

index 0-email1-email2-email3
index 1-tel1-tel2-tel3
4

2 に答える 2

1

@Sanjay:ビューモデルに奇妙な構造があります:

public class CustContact
{
   public List<CustContact> contact;
}

コンパイルして機械が理解しても、そのままでは使いません。髪を引き上げて地面から持ち上げようとします:)

これらの線に沿って何かを定義する必要があります(命名規則とロジックに従って):

public class CustContact // single
{
    public int cId { get; set; }
    public int cNoType { get; set; }
    public string cNo1 { get; set; } // those are actual phones, emails etc data
    public string cNo2 { get; set; }
    public string cNo3 { get; set; }
}

public class CustContacts // plural
{
   public List<CustContact> Contacts;
}

意見:

@model CustContacts
@EditorFor(m => Model)

エディターテンプレート:

@model CustContact
@Html.EditorFor(m => m.cNo1)
@Html.EditorFor(m => m.cNo2)
@Html.EditorFor(m => m.cNo3)

簡潔にするために、ここでは注釈、装飾、エラー処理などは扱いません。

お役に立てれば。

于 2012-08-14T13:12:22.900 に答える
0

質問へのコメントに基づいて、私は以下のようにモデルを構築します

public class CustContact
{
    public int cId { get; set; }
    public int cNoType { get; set; }
    public string cNo1 { get; set; }
    public string cNo2 { get; set; }
    public string cNo3 { get; set; }
}

public class Customer
{
    public CustContact Email {get; set;}
    public CustContact Telephone {get; set;}
}

次に、エディターテンプレートを作成します。Customerそのエディターテンプレートには、次のロジックがあります。

@Html.EditorFor(model => model.Email)
@Html.EditorFor(model => model.Telephone)

お役に立てれば

于 2012-08-14T11:01:59.523 に答える