0

グループでデータを表示するときは、手続き型プログラミングに頼り続けます。もっと良い方法があるはずです。あなたの考え?

//Example: Sales by Region

@{
    string _Region = "";
    bool _FirstRecordFlag = false;
    }


    @foreach(DataRow Row in dataset.Tables["MonthlySales"].Rows)
    {
        if(_Region != Row["Region"].ToString())
        {
           if(_FirstRecordFlag)
            {
                @:</fieldset>
                _FirstRecordFlag = true;
            }
            @:<fieldset>
            @:  <legend>@Row["Region"]</legend>
            _Region = Row["Region"].ToString())
        }
            <div>
                Display Sales data here...
            </div>
    }
}
4

1 に答える 1

2

グループでデータを表示するときは、手続き型プログラミングにフォールバックし続けます。もっと良い方法があるはずです。

もちろん、もっと良い方法があります。質問はでタグ付けされているmvcため、ビューモデルを使用し、コントローラーでこの種のグループ化をすべて実行して、ビューに渡されるビューモデルにデータを入力する必要があります。その場合、Razorビューは可能な限りダムにする必要があります。ビューモデルからの情報のみが表示されます。RazorビューでDataSetsとDataRowsを操作することは、この問題に取り組むためのまったく間違った方法です。あなたの見解は、いくつかの恐ろしいスパゲッティコードのようになります。

したがって、ビューに情報をどのように表示するかという観点から考えてください。この考えに基づいて、この構造を反映するビューモデルを考え出すことができます。次に、コントローラーアクションで行う必要があるのは、ドメインモデル(この場合はDataSet)を、ビューに渡される対応するビューモデルにマップすることだけです。

また、これがASP.NET MVCアプリケーションではなく、ビュー部分しかないWebMatrixサイトの場合でも、ビューモデルを定義し、かみそりページのコードビハインド部分でドメインモデルをビューモデルにマップする必要があります。次に、Razorテンプレートのビュー部分によって操作されます。

于 2012-04-06T11:12:38.763 に答える