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

Uは、2つのビューモデルに基づく複雑なモデルを使用してフォームを作成したり、配列に基づいた単純なものを使用したりできます。

実行できることの非常に単純な例を次に示します(必要に応じて、2つのViewModelを使用してより複雑な例を作成できます)。

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 に答える