我有一张 table ,上面的每个项目都有一个状态或状态,根据这个状态,您可以购买一个项目或将其设置在等待列表中。
为此,我在 Razor View 中有一个 @if
语句,我在其中检查状态,然后有条件地选择要为适当操作呈现的按钮。
我在 session 和角色的其他 View 中有一些类似的逻辑。
这是一个好习惯吗?还有其他方法可以做到吗?
@if( @item.status == 1 ) {
<a class="btn btn-default" href="Items/Buy/@item.id">Buy</a>
} else if ( item.status == 2 ) {
<a class="btn btn-default" href="Items/SetList/@item.id">Add To List</a>
}
最佳答案
这并不是世界上最糟糕的事情,因为它被用来在 View 中显示元素。但是,我会为 HtmlHelper 制作一个扩展方法来呈现您尝试创建的操作链接。就像是:
public static class HtmlHelperExtensions
{
public static HtmlString RenderStatus(this HtmlHelper helper, ItemModel item)
{
if (item.status == 1)
{
return helper.ActionLink("Buy", "Buy", "Items", new { @class = "btn btn-default" });
}
if (item.status == 2)
{
return helper.ActionLink("Add To List", "SetList", "Items", new { id = item.Id }, new { @class = "btn btn-default" });
}
return new MvcHtmlString("");
}
}
那么在你看来,你需要做的就是调用
@Html.RenderStatus(item)
关于asp.net-mvc - 考虑逻辑是不是不好的做法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38284641/