我有一份费用列表,我希望在我网站上各种页面的列表中显示。根据页面的不同,我想省略某些信息以消除混乱和冗余。
例如,如果我只列出系统中的每笔费用,我想列出每行收费,公司及其所属网站的描述。如果我只是在公司页面上列出费用,我会在每一行中省略公司名称。而且,如果我在公司的网站页面,我只会列出费用的描述。
我在考虑使用部分视图并在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...
}
答案 0 :(得分:0)
额外的HTML请求是什么意思?渲染不会再做另一个http请求,如果这就是你在想的......我认为RenderAction实际上是一个很好的解决方案。这样,视图选择逻辑可以在控制器方法中维护