繁体   English   中英

ASP.NET MVC数据不会从使用的部分视图传到控制器

[英]ASP.NET MVC The data doesnt come to controller from partial view used

我有主视图和主模型。

在此视图内,我有这样的线条

 foreach (var loadTask in Model.LoadTasks)
 {
     Html.RenderPartial("TripUpdateTask", new TripUpdateTaskModel { Task = loadTask });
 }

所以在主模型中

  public List<OrderTaskRecord> LoadTasks { get; set; }

子模型是:

public class TripUpdateTaskModel
{
    public OrderTaskRecord Task { get; set; }
}

我玩了,但仍然无法保存数据。 这是当前的简单外观。

<tr>    
    <td>Actual Time:</td>
    <td>@Html.TextBoxFor(m => m.Task.Task.ActualTime)</td>
</tr>

在原始html中,这些时间控件具有相同的名称和ID。 所以我不知道该怎么做才能节省下来。

我的意思是在主视图上输入的数据可以返回到控制器,但不是从局部视图

我在这样的主视图中使用Html.BeginForm和fieldset:

 @using (Html.BeginForm("TripUpdate", "SupplierBookingUpdate", FormMethod.Post, new { id = "SupplierBookingUpdateSave" }))
 {
    <fieldset>
    .. table
    </fieldset>
 }

我建议不要绑定您的OrderTaskRecord集合,而不是尝试分别命名每个文本框。 这样,您无需担心许多文本框及其名称。

Scott Hanselman对该主题做了很好的介绍。

您也可以在这里尝试另一个示例: http : //haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx/

如果要将自定义名称传递给正在生成的input ,请使用此名称。 它将html属性传递给TextBoxFor方法:

@Html.TextBoxFor(m => m.Task.Task.ActualTime, new { Name = "yourName" )

当然,您可以在此处创建计数器等,以使其保持唯一。

您可以稍后通过获取Form数据在Controller中提取它们:

Request.Form["yourName"];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM