Ric*_*rdA 15 c# asp.net-mvc razor
我宣布了一个枚举:
public enum HeightTypes{ Tall, Short}
Run Code Online (Sandbox Code Playgroud)
现在我想在我的剃刀页面上使用它,如下所示:
@if (Model.Meta.Height == HeightTypes.Tall)
Run Code Online (Sandbox Code Playgroud)
但是当我收到错误时会出现问题.有什么方法可以告诉剃刀页面关于我的枚举?
Dar*_*rov 21
您的枚举声明中有错误(删除尾随;):
public enum HeightTypes { Short = 0, Tall = 1 }
Run Code Online (Sandbox Code Playgroud)
然后以下测试应该工作:
@if (Model.Meta.Height == HeightTypes.Tall)
{
}
Run Code Online (Sandbox Code Playgroud)
您只需要确保您的视图是强类型的,并且您已将定义了Height枚举的命名空间纳入范围:
@using SomeAppName.Models
@model SomeViewModel
Run Code Online (Sandbox Code Playgroud)
或者像这样引用枚举:
@if (Model.Meta.Height == SomeAppName.Models.HeightTypes.Tall)
{
}
Run Code Online (Sandbox Code Playgroud)
但是为了避免在需要使用此枚举的所有剃刀视图中执行此操作,更容易在以下<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>
Run Code Online (Sandbox Code Playgroud)
Kwe*_*wex 11
只是做一个从头到尾的例子:
C#CS
namespace MyProject.Enums
{
public enum CurveBasis
{
Aggregates,
Premium
}
}
Run Code Online (Sandbox Code Playgroud)
剃刀视图
@using MyProject.Enums
<select id="dlCurveBasis">
<option value="@CurveBasis.Aggregates">Aggregates</option>
<option value="@CurveBasis.Premium">Premium</option>
</select>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28265 次 |
| 最近记录: |