在我们的标准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 举报,一经查实,本站将立刻删除。