具有次要不同布局的部分视图

时间:2011-04-27 20:40:36

标签: c# asp.net-mvc

我有一份费用列表,我希望在我网站上各种页面的列表中显示。根据页面的不同,我想省略某些信息以消除混乱和冗余。

例如,如果我只列出系统中的每笔费用,我想列出每行收费,公司及其所属网站的描述。如果我只是在公司页面上列出费用,我会在每一行中省略公司名称。而且,如果我在公司的网站页面,我只会列出费用的描述。

我在考虑使用部分视图并在viewmodels中使用变量来定义if / else语句何时省略哪些信息。但这变得非常复杂;我很好奇是否有更好的方法。

我已经研究过Html.RenderAction但是额外的html请求不是一个可行的选择。

public class Customer
{
    // has some sites
    public IEnumerable<Site> Sites { get; set; }
}

public class Site
{
    // sites has some fees
    public IEnumerable<Fee> Fees { get; set; }
}

public class Fee
{
    // descriptions, amount, etc...
}

1 个答案:

答案 0 :(得分:0)

额外的HTML请求是什么意思?渲染不会再做另一个http请求,如果这就是你在想的......我认为RenderAction实际上是一个很好的解决方案。这样,视图选择逻辑可以在控制器方法中维护