Razor语法问题并尝试从函数输出字符串

时间:2011-08-03 18:49:40

标签: asp.net-mvc-3 razor

我在.cshtml文件中有以下代码,但每个<option>都没有返回。我已经验证GetDescription()返回正确的字符串,所以我的Razor代码中必须有语法问题。有人能告诉我问题是什么吗?

            <select>
            @{
                Array enumValues = null;
                enumValues = Enum.GetValues(typeof(SearchOperatorString));
                foreach (var type in enumValues)
                { 
                <option>
                    @{((Enum)type).GetDescription();} </option>
                }
            }
        </select>

2 个答案:

答案 0 :(得分:1)

你正在创建一个语句块,它调用GetDescription,但对结果没有任何作用。

您想要使用代码块,它会将表达式打印到页面:

 @((Enum)type).GetDescription()

不应手动执行此操作,而应调用DropDownList帮助程序:

@Html.DropDownList("myName", 
    enumValues.Cast<SearchOperatorString>()
              .Select(s => new SelectListItem { Text = e })
)

答案 1 :(得分:1)

试试这个:

@foreach(var type in Enum.GetValues(typeof(SearchOperatorString))){
    <option>@((Enum)type).GetDescription()</option>
}