enum を宣言しました:
public enum HeightTypes{ Tall, Short}
今、私はこれを次のように Razor ページで使用したいと思います。
@if (Model.Meta.Height == HeightTypes.Tall)
しかし、エラーが発生するので問題があります。列挙型について Razor ページに通知する方法はありますか?
ベストアンサー1
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>
ただし、この列挙型を使用する必要があるすべての Razor ビューでこれを行わないようにするには、の セクションで宣言する方が簡単です~/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>