数据列进入db MVC4

时间:2016-11-03 08:18:01

标签: asp.net-mvc-4

        <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中。有没有关于如何做到这一点的教程?

1 个答案:

答案 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控件的操作中,您可以使用您的逻辑插入数据库

我希望这将成为您查询的解决方案。