Ответ 1
У вас есть ошибка в объявлении enum (удалить завершающий ;
):
public enum HeightTypes { Short = 0, Tall = 1 }
то следующий тест должен работать:
@if (Model.Meta.Height == HeightTypes.Tall)
{
}
вам просто нужно убедиться, что ваше представление строго напечатано и что вы внесли в область видимости пространство имен, в котором определено перечисление высоты:
@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>