微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net-mvc – 如何在ASP.NET MVC中控制部分视图的条件显示

在我们的标准Web表单ASP.NET解决方案中,我们通常在母版页中具有一系列用户控件,并确定它们是否在其代码显示. ASP.NET MVC中实现相同目标的最佳方法是什么?

显然,你可以将if语句放在母版页或局部视图中,但这样会让我感到麻烦,并打破了将业务逻辑排除在视图之外的原则.它还需要将必要的信息放入所有视图模型中,或者从基本控制器继承,这对于如此简单的事情似乎很麻烦.

我正在考虑使用RenderAction并返回一个完全空白的视图以防止任何输出 – 这是一个好的模式吗?

解决方法

breaks the principle of keeping business logic out of the view

这不是业务逻辑.当您确定是否显示某些内容时,它是表示逻辑.把它放在那里是可以的.

您可以决定是否显示某些内容并在模型中设置一些标志(例如,您可以制作BaseModel或MasterModel).然后,您的主视图,部分视图本身或HTML帮助程序将基于这些标志执行条件呈现.

关于关注点的清晰分离,是的,WebForms似乎可以做到这一点,但它是对底层机制的巨大抽象.通常,它会导致在代码隐藏中具有业务逻辑,这意味着,在业务逻辑所属的表示层中,其不属于视图所属的.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐