【发布时间】:2021-04-12 10:41:22
【问题描述】:
我正在开发一个在线商店网站,其中包含一组默认功能,如产品页面、产品类别、评论、个人购物车等。 这是我第一次做这样的项目,在实现功能的过程中,我在处理视图中的不同异常时遇到了一些困难。因此,我想了解在 Views 中设计好的代码的最佳实践,这些代码将来可以扩展。
假设我有一个带有 Category 操作的 Shop 控制器,它显示与我们所在的类别相关的产品列表。在相应的类别视图中,我需要遍历产品列表并根据用户的角色和授权(管理员、用户、访客) 隐藏一些不活跃的产品。我现在做的方式是这样的(代码被简化了):
@model ProductList
@foreach (var i in Model) {
@if (i.Product.Active || UserManager.IsInRole(User, "Admin")) {
<div class="product">
@if (i.Data.Path == null) {
<img src="placeholder.png">
}
else {
<img src="@i.Data.Path">
}
...
</div>
}
}
虽然它看起来很直观,但我意识到,一旦我添加更多条件分支,这迟早会变得非常混乱。所以我的问题是:还有其他方法可以处理此类异常分支吗?我听说过自定义 HtmlTagHelpers(它可以使代码看起来更像 HTML,同时保留一些条件逻辑),但看起来为每个异常显式编写逻辑需要更多时间。
提前谢谢你!
【问题讨论】:
-
我认为使用 .Net 的 MVVM 的最佳实践不是一个好的选择。一般来说,您的前端不应与后端耦合。改用 WebApi 可能会更好
标签: c# asp.net-core asp.net-mvc-views