如何将 HTMLAttributes 传播到自定义 EditorTemplate?

How propagate HTMLAttributes to a custom EditorTemplate?

我为 货币 浮点格式创建了一个编辑器模板。

@using System.Globalization
@{
    var ri = new RegionInfo(System.Threading.Thread.CurrentThread.CurrentUICulture.LCID);
}

<div class="input-group ">
    <div class="input-group-addon">@ri.CurrencySymbol</div>
    @Html.TextBox("", ViewData.ModelMetadata.Model, new { @class = " form-control text-box single-line" })
</div>

显示带有货币符号的 bootstrap 输入组

它工作正常,但我试图传递一些额外的 类,例如“text-danger”或“input-group-lg”,但是这些参数没有传递到编辑器模板。

@Html.EditorFor(model => model.money, new { htmlAttributes = new { @class = "text-danger input-lg form-group-lg" } })

类“text-danger input-lg form-group-lg”未设置为主div。

如何将这些 类 传播到我的编辑器模板?

只需使用路由 ViewData["htmlAttributes"] 到字典并获取 "class" 值

@{
    var htmlAttrib = ViewData["htmlAttributes"]
    IDictionary<string, object> dic = new RouteValueDictionary(htmlAttrib);
    var classes = dic ["class"];
}

<div class="@classes" > your control .... </div>