首页 > 解决方案 > 动态设置@Html.Textbox() 属性?

问题描述

这应该很简单,但我遇到了一些问题。我正在动态生成控件,每个控件都可以具有自定义的 html 属性(data-blah="blah" 等)。我想我可以将属性存储在字典中,然后将该字典添加到视图中的 html 助手中。

 foreach (var prop in props)
 {
      var PropertyToRender = Model.PropertiesToRender.Where(x => x.Key == prop.Key.Name).ToList();

      if (PropertyToRender.Any())
      {
           var field = PropertyToRender.First().Value;

           if (field.Tag == "input")
           {
                <div class="m-form--group m-form--group-inset">
                     <label>@(prop.Value.Name ?? prop.Key.Name)</label>
                     @Html.TextBox(prop.Key.Name, prop.Key.GetValue(Model), field.Attributes.ToStrng())
                     @Html.ValidationMessage(prop.Key.Name)
                </div>
           }
       }
 }

我正在使用反射来获取模型的属性props,然后查找PropertiesToRender以查看是否需要渲染模型属性。最后,html 属性位于field.Attributes. 我只需要一种方法来呈现 Html 属性,其他一切都很好。谢谢

标签: c#asp.netasp.net-mvcrazor

解决方案


我是个小丑 - 只需要将我的字典转换为匿名对象。


推荐阅读