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

时间:2016-07-26 18:19:54

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

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

@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>

显示带货币符号的引导输入组

enter image description here

它工作正常,但我试图传递一些额外的类,如“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。

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

1 个答案:

答案 0 :(得分:3)

只需将路径ViewData [&#34; htmlAttributes&#34;]用于字典并获取&#34; class&#34;值

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

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