有条不紊地显示我的部分视图

时间:2009-04-23 08:22:28

标签: asp.net-mvc

假设我有一个asp.net mvc网站,其中有一个列出产品的页面。在该页面上,我有一个“删除”按钮,该按钮只应显示插入产品的用户。最好的方法是什么?

我想到的一种方法是在控制器中设置一个布尔值,让视图知道是否应该显示按钮。类似的东西:

if(IsProductOwner(UserId))
    ViewData["CanDelete"] = true;

然后在视图中我可以做到

<% if((boolean)ViewData["CanDelete"] == true) { %>
    // show delete button
<% } %>

但有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

我最初的想法是,您至少应该将其作为Product类的一个功能,以便您可以:

<% if (product.IsOwnedBy(UserId)) { %>
    // show delete button
<% } %>

这会删除一些浮动的ViewData,并将业务逻辑构建到类中,而不是浮出边缘。

但是,我没有找到一种在视图中进行这种条件显示的好方法,除非视图明显不同,然后我根据上下文让动作显示不同的视图。