asp.net mvc避免if - Else逻辑控件在视图中

时间:2013-11-01 08:08:32

标签: c# asp.net asp.net-mvc

我的视图中有下一个代码:

   @if (Model is Manager)
        {
           //render manager button
        }
        else if (Model is Developer)
        {
            //render Developer button
        }
        else if (Model is UX)
        {
            //render UX button
        }

这样可行,但我正在寻找最好的方法。 有什么想法吗?

1 个答案:

答案 0 :(得分:5)

您可以使用扩展方法为不同的实体实现控制逻辑。

 public static MvcHtmlString userButton(this HtmlHelper html, Manager user)
    {
        string buttonForManager = //...
        return new MvcHtmlString(buttonForManager);
    }

    public static MvcHtmlString userButton(this HtmlHelper html, Developer user)
    {
         string buttonForDeveloper = //...
        return new MvcHtmlString(buttonForDeveloper);
    }

在视图中使用:

@Html.userButton(Model)