MVC Razor在组中显示数据



在分组显示数据时,我一直回到过程编程,我相信一定有更好的方法。你的想法?

//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>
    }
}

在中显示数据时,我总是回到过程编程我相信一定有更好的方法

当然还有更好的方法。由于您的问题用mvc标记,因此您应该使用视图模型,并在控制器中执行所有此类分组,以填充将传递给视图的视图模型。Razor视图应该尽可能地愚蠢——它只显示视图模型中的信息。在Razor视图中使用DataSet和DataRows绝对是解决这个问题的错误方法。你的观点会像一些可怕的意大利面条代码。

因此,请考虑如何在视图中显示信息。基于这种想法,你将能够提出一个反映这种结构的视图模型。然后,在控制器操作中,您所要做的就是将域模型(在您的案例中是DataSet)映射到将传递给视图的相应视图模型。

如果这不是一个ASP.NET MVC应用程序,而是一个只有View部分的WebMatrix网站,那么您仍然应该定义一个视图模型,并让razor页面部分后面的代码将域模型映射到视图模型,然后由razor模板的视图部分进行操作。

相关内容

  • 没有找到相关文章

最新更新