将多个控件绑定到MVC中的集合

本文关键字:MVC 集合 绑定 控件 | 更新日期: 2023-09-27 18:12:17

我有10个文本类型输入控件,5个在第一个标签&5在同一页的第二个标签。

现在我有了一个名为 的类
public partial class TravelerMaster
{
     public virtual ICollection<TravelerDetail> TravelerDetails { get; set; }
}

有一个集合作为TravelerDetail。

public partial class TravelerDetail
{
    public byte PackageTypeId { get; set; }
    public int? NoOfPackage { get; set; }
    public decimal? Weight { get; set; }
    public decimal? PricePerKg { get; set; }
    public decimal? PricePerPackage { get; set; }
}

如何绑定控件,以便在发布数据时,TravelerMaster对象的集合中有两个对象。

请帮帮我。提前感谢。

将多个控件绑定到MVC中的集合

您可以像这样提交特定模型的集合。通过应用索引(这可以是任何唯一的东西,但为了方便起见,我使用了一个整数值),您可以向控制器提交相同模型的集合:

<div id="tab1">
     @Html.Hidden("data.Index","1")
     @Html.TextBox("data[1].weight", "", new { @class = "your-class-names", @id = "data[1].weight" })
     ...other fields...
</div>
<div id="tab2">
     @Html.Hidden("data.Index","2")
     @Html.TextBox("data[2].weight", "", new { @class = "your-class-names", @id = "data[2].weight" })
     ...other fields...
</div>
控制器

[HttpPost]
public ActionResult YourControllerMethod(IEnumerable<TravelerDetail> data)
{
     if (data==null || data.Count() == 0) throw new Exception("No Data Added");
     ....other validation...
     foreach(var item in data) {
         ...database work...
     }
}