[英]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.