我是弗朗西斯,我是新手。关于View和Controller之间发布的数据,ASP.NET MVC3有问题。我的目标是使用表单来编辑我的数据库中的特定记录,然后将其发送回控制器,控制器负责检查记录的字段并将它们提交到数据库中。 通过使用ViewModel将数据从Controller传递到View,因此DefaultDataBinding不适用于这种情况。我尝试了很多方法,我监控了与Fiddler的沟通,但我无法解决我的问题。 Phil Haack描述的方法不起作用,FormCollection也不起作用。通行证嵌套列表来控制使用的ViewModels
这里有代码:
的ViewModels:我把它传递给视图中创建一个表。只需显示名称和项目名称(表格列标题)列表。我想返回Id,Month(它们作为参数正确传递并表示表格行标题),最重要的是Items和它们的Id的ActualValue(我的数据库中有一个关联表,其中Id,Itemid和Month分别为键)
public class EditViewModel
{
[ScaffoldColumn(false)]
public int Id { get; set; }
[ScaffoldColumn(false)]
public int Month { get; set; }
public string Name { get; set; }
public List<ItemViewModel> ItemList { get; set; }
}
public class ItemViewModel
{
[ScaffoldColumn(false)]
public int ItemId { get; set; }
public string ItemName { get; set; }
public float ActualValue { get; set; }
}
查看:视图强类型为ViewModels.EditViewModel并通过提交按钮发送字段。我必须使用的foreach循环生成的表,因为我不知道有多少项目有提前
控制器:控制器有更新来自与特定标识和月视图通过每个KPI。
[HttpPost]
public ActionResult EditMonth(int Id, int Month, //FormCollection kpiValues)
我希望我很清楚,我期待着有一些帮助。非常感谢!
请告诉我你的问题? – Landern 2011-03-24 15:42:32
对不起,摩西,我是新来的,我必须改进我发布问题的方式。我的问题是“如何将具有未知数量的元素的嵌套列表(在另一个列表中)从强类型View传递给Controller?” – CiccioMiami 2011-03-25 08:04:23