假设我有一个asp.net mvc网站,其中有一个列出产品的页面。在该页面上,我有一个“删除”按钮,该按钮只应显示插入产品的用户。最好的方法是什么?
我想到的一种方法是在控制器中设置一个布尔值,让视图知道是否应该显示按钮。类似的东西:
if(IsProductOwner(UserId))
ViewData["CanDelete"] = true;
然后在视图中我可以做到
<% if((boolean)ViewData["CanDelete"] == true) { %>
// show delete button
<% } %>
但有更好的方法吗?
答案 0 :(得分:2)
我最初的想法是,您至少应该将其作为Product类的一个功能,以便您可以:
<% if (product.IsOwnedBy(UserId)) { %>
// show delete button
<% } %>
这会删除一些浮动的ViewData,并将业务逻辑构建到类中,而不是浮出边缘。
但是,我没有找到一种在视图中进行这种条件显示的好方法,除非视图明显不同,然后我根据上下文让动作显示不同的视图。