<table>
@foreach (DataRow row in Model.Rows)
{
<tr>
@foreach (DataColumn col in Model.Columns)
{
<td>@row[col.ColumnName]</td>
}
</tr>
}
</table>
@Html.ActionLink("Pass", "Insert", "Home")
单击传递链接时,我希望将列插入到db中。有没有关于如何做到这一点的教程?
答案 0 :(得分:0)
请试试这个样本。 创建一个视图模型类,如下所示
public class DataRows
{
public int Column1{ get; set; }
public string Column2 { get; set; }
public double Column3 { get; set; }
}
public class MyModel
{
public virtual DataRows[] DataSet { get; set; }
}
使用您的业务逻辑将所有数据检索到控制器中的 MyModel 。我正在使用示例代码
来演示这一点 public TestModel GenerateModel()
{
var model = new TestModel();
model.DataSet = this.GenerateDataGridData().ToArray();
return model;
}
private ICollection<SampleDataSet> GenerateDataGridData()
{
var list = new List<SampleDataSet>()
{
new SampleDataSet() { Column1= 1, Column2= "XXX", Column3= 23 },
new SampleDataSet() { Column1= 2, Column2= "YYY", Column3= 27 },
new SampleDataSet() { Column1= 3, Column2= "ZZ", Column3= 25 }
};
return list;
}
在您的视图的操作中,您将调用 GenerateModel 方法,如下所示
public ActionResult MyView()
{
var model = this.GenerateModel();
return this.View(model);
}
现在您重新构建 MyView 页面,如下所示
@model MyModel
@{
int i = 0;
}
@using (Html.BeginForm("Insert", "Home", FormMethod.Post))
{
<table>
<thead>
<tr>
<th>Column1</th>
<th>Column2</th>
<th>Column3</th>
</tr>
</thead>
<tbody>
@foreach (var row in Model.DataSet)
{
<tr>
<th>@row.Column1<span>@Html.HiddenFor(x => Model.DataSet[i].Column1)</span></th>
<th>@row.Column2<span>@Html.HiddenFor(x => Model.DataSet[i].Column2)</span></th>
<th>@row.Column3<span>@Html.HiddenFor(x => Model.DataSet[i].Column3)</span></th>
</tr>
i++;
}
</tbody>
</table>
<input type="submit" value="Pass" />
}
现在提交视图中的数据将发布到您的插入 Home控件的操作中,您可以使用您的逻辑插入数据库
我希望这将成为您查询的解决方案。