【发布时间】:2014-11-05 14:31:20
【问题描述】:
{WV_DeviceReg, WV_DevEventLog, WV_DevSystemLog, WV_DeviceConfig} 是我来自 ADO.NET Entity Framework 的模型。
视图模型
namespace MvcWebVms.Models
{
public class HomeViewModels
{
public IEnumerable<WV_DeviceReg> DeviceReg { get; set; }
public IEnumerable<WV_DevEventLog> DevEventLog { get; set; }
public IEnumerable<WV_DevSystemLog> DevSystemLog { get; set; }
public IEnumerable<WV_DeviceConfig> DeviceConfig { get; set; }
}
}
查看
@model MvcWebVms.Models.HomeViewModels
@using (Html.BeginForm()){
<div>
@foreach (var item in Model.DeviceConfig) {
@Html.HiddenFor(modelItem => item.FieldName)
@Html.HiddenFor(modelItem => item.DeviceID_F)
<div class="editor-label">
@Html.DisplayFor(modelItem => item.FieldName)
</div>
<div class="editor-field">
@Html.EditorFor(modelItem => item.FieldValue)
</div>
}
<input type="submit" value="Apply" />
</div>
}
控制器
public ActionResult Setting(string id)
{
HomeServices service = new HomeServices();
return View(service.GetDeviceSettingAT(id));
}
public WVDBEntities wvdb = new WVDBEntities();
[HttpPost]
public ActionResult Setting(HomeViewModels viewModels)
{
if (ModelState.IsValid)
{
foreach (????????????)
{
????????????????
}
wvdb.SaveChanges();
return View(viewModels);
}
else
{
return View();
}
}
表格
WV_DeviceConfig { FieldName(PK), DeviceID_F(PK), FieldValue, ServerTime }
FieldName的Key映射FieldValue的值
问:请问如何使用foreach更新我的数据库?
【问题讨论】:
-
我很想回答“斯蒂芬·穆克知道答案”
-
由于
viewModels的所有属性在您回帖时都是空的,所以让我们先解决这个问题。您需要为每种类型使用EditorTemplate或使用for循环来呈现您的控件(并将集合从IEnumerable更改为IList)。 This answer 解释了这个问题。 (大声笑@AbdulAhmad)
标签: c# asp.net-mvc asp.net-mvc-4