这是我的模特
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)
我需要显示三个文本框用于接收电子邮件,三个文本框用于接听电话号码。在视野中。如何将项目添加到模型中定义的列表联系人中,以便它显示如下
email:--textbox1----textbox2----textbox3--
telephone:--textbox1----textbox2----textbox3--
并将值发送到控制器
实际上我正在尝试将此数据发送到名为contact的列表中,即
中的列表内部index 0-email1-email2-email3
index 1-tel1-tel2-tel3
答案 0 :(得分: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)
为简洁起见,我们不在此处理注释,装饰,错误处理等。
希望这有帮助。
答案 1 :(得分: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)
希望这有帮助