У вас есть ошибка в объявлении enum (удалите трейлинг ;
):
public enum HeightTypes { Short = 0, Tall = 1 }
тогда должен работать следующий тест:
@if (Model.Meta.Height == HeightTypes.Tall)
{
}
вам просто нужно убедиться, что ваше представление строго типизировано и что вы внедрили в область имен пространство, в котором определяется перечисление Height:
@using SomeAppName.Models
@model SomeViewModel
или ссылаться на перечисление следующим образом:
@if (Model.Meta.Height == SomeAppName.Models.HeightTypes.Tall)
{
}
Но чтобы избежать этого во всех ваших видах бритвы, которые требуют использования этого перечисления, проще объявить его в разделе <namespaces>
в ~/Views/web.config
:
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="SomeAppName.Models" />
</namespaces>
</pages>
</system.web.webPages.razor>