我可以使用传入的字符串变量在Razor中动态渲染HTML元素

时间:2016-05-18 15:18:27

标签: html asp.net-mvc razor

我有一个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代码......

0 个答案:

没有答案