MVC3 の Razor ページで Enums を使用するにはどうすればいいですか? 質問する

MVC3 の Razor ページで Enums を使用するにはどうすればいいですか? 質問する

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>

おすすめ記事