动态设置@ Html.Textbox()属性?

时间:2018-06-26 13:44:06

标签: c# asp.net asp.net-mvc razor

这应该很简单,但是我有一个问题。我正在动态生成控件,每个控件都可以具有自定义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属性的方法,其他所有方法都可以正常工作。谢谢

1 个答案:

答案 0 :(得分:0)

我是个恶棍-只需要将我的字典转换成匿名对象即可。