1

我需要为从 A 点到 B 点所需的天数建立某种矩阵。

这应该是这样的:

在此处输入图像描述

每个起点/终点都存储在一个表中(名为 Stop):

public class Stop
{
    [Key]
    public int StopID { get; set; }
    public string StopCode { get; set; }
}

矩阵的数据应该存储在另一个表中:

public class Matrix
{
    [Key]
    public int MatrixID { get; set; }
    public int OriginStopID { get; set; }
    public int DestinationStopID { get; set; }
    public int NumberOfDays { get; set; }
}

我需要一个视图来允许用户在这个矩阵中输入数据。我怎样才能做到这一点?我没有任何想法。

谢谢。

4

1 回答 1

0

您可以使用基于两个视图模型的复杂模型来创建表单或使用基于数组的简单模型。

这是可以做什么的非常简单的示例(如果需要,我可以使用两个 ViewModel 制作更复杂的示例)。

视图模型:

public class TestViewModel
{
    public int[][] Matrix { get; set; }

    public TestViewModel()
    {            
    }

    public TestViewModel(string i)
    {
        Matrix = new int[4][] { new int[4] { 1, 2, 3, 4 }, new int[4] { 1, 2, 3, 4 }, new int[4] { 1, 2, 3, 4 }, new int[4] { 1, 2, 3, 4 } };
    }
}

控制器:

    public ActionResult Test()
    {
        return View(new TestViewModel("sa"));
    }

    [HttpPost]
    public ActionResult Test(TestViewModel model)
    {
        //some business logic goes here
        //ViewModel to Model convertion goes here
        return View(model);
    }

看法:

@model TestViewModel
@using (Html.BeginForm())
{
    <div class="form_block">
        @for (int i = 0; i<Model.Matrix.Length;i++)
        {
            for (int j = 0; j<Model.Matrix[i].Length;j++)
            {
                    @Html.TextBoxFor(x=>x.Matrix[i][j])
            }
        }
    </div>
    <div class="submit_block">
        <input type="submit" value="Сохранить изменения" />
    </div>
}
于 2012-05-03T07:44:37.183 回答