我在理解如何将集合呈现为下拉列表时遇到了问题。
如果我有一个这样的模型:
public class AccountViewModel {
public string[] Country { get; set; }
}我希望字符串集合呈现为一个下拉列表。
使用html页面助手InputFor似乎不起作用。它只是呈现为一个文本框。
我注意到InputFor可以反映属性类型并相应地呈现html。(类似于布尔型字段的复选框)。
我还注意到FubuPageExtensions有用于CheckBoxFor和TextBoxFor的方法,但没有与DropDownListFor等效的方法。
在理解fubu中的html约定时,我可能遗漏了一些非常基本的东西。
我需要自己构建select标签吗?如果是这样,推荐的方法是什么?
发布于 2012-01-11 06:26:26
您是正确的(在我上次查看时),虽然您可以使用HtmlTags library通过代码生成一个选择标记,但是没有用于生成选择标记的FubuMVC.Core HTML扩展方法。
正如你在问题中提到的,解决这个问题的正确方法可能是使用超文本标记语言约定和HtmlTags库,比如FubuMVC.Recipes示例“src/UI/HtmlConventionsWithPageExtensions”。
例如,枚举生成示例可能是:
this.Editors
.If(e => e.Accessor.PropertyType.IsEnum)
.BuildBy(er =>
{
var tag = new HtmlTag("select");
var enumValues = Enum.GetValues(er.Accessor.PropertyType);
foreach (var enumValue in enumValues)
{
tag.Children.Add(new HtmlTag("option").Text(enumValue.ToString()));
}
return tag;
});FubuMVC.Recipes存储库非常新,而且还在不断增长,因此周围可能有一些更好的示例,但希望这能给您一些启发。
https://stackoverflow.com/questions/8811028
复制相似问题