我有一个C#MVC Web App。
我的模型传入一个值和类型,在我的UI Razor中,我这样处理它:
@for (int i = 0; i != Model.SectionModel.Count; i++)
{
<div style="clear: left; padding-left: 20px;">
@Html.Label(Model.SectionModel[i].Name)
<div class="clear"></div>
@for (int j = 0; j != Model.SectionModel[i].PreferenceModel.Count; j++)
{
switch (Model.SectionModel[i].PreferenceModel[j].Type)
{
case "radio":
@Html.CheckBoxFor(m=> m.SectionModel[i].PreferenceModel[j].Default)
@Html.LabelFor(x => x.SectionModel[i].PreferenceModel[j].Default, Model.SectionModel[i].PreferenceModel[j].Name)
break;
case "text":
@Html.TextBox( Model.SectionModel[i].PreferenceModel[j].Name,Model.SectionModel[i].PreferenceModel[j].Default)
break;
default:
<div>test dud</div>
break;
}
<div class="clear"></div>
}
</div>
}
</div>
但要支持超过这2个HTML元素而不使用&#39;开关&#39;鉴别家我想知道我是否可以通过编写&#39;像这样的控制:
@Html.WriteAControl(Model.SectionModel[i].PreferenceModel[j].Type)
显然,@Html.WriteAControl
是SUDO代码......