2016-07-26 14 views
1

float 형식의 편집기 템플릿을 만들었습니다. 통화 기호와 부트 스트랩 입력 그룹을 보여줍니다HTMLAttributes를 사용자 정의 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> 

enter image description here

그것은 잘 작동하지만 메신저 "텍스트 - 위험"또는 "입력 그룹 - LG 전자 같은 몇 가지 추가 클래스를 전달하려고 그러나 이러한 매개 변수는 Editor 템플릿으로 전달되지 않습니다.

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

"text-danger input-lg form-group-lg"클래스는 주 div에 설정되지 않습니다.

어떻게 이러한 클래스를 내 편집기 템플릿에 전파 할 수 있습니까?

+0

당신은 어떤 타입이 에디터를 만든거야? (float, int, string) –

+0

템플릿에서'(string) ViewData [ "ClassText"]'와 같은 ViewData를 사용할 수 있습니다. @Html.TextBox ("", ViewData.ModelMetadata.Model, new {@class = " "@Html.EditorFor (model => model.money, new {ClassText ="text) "와 같은 형태가 될 것이므로, 폼 컨트롤 텍스트 박스 단일 행"+ (string) ViewData [ "ClassText"]' –

+0

@FelipeDeguchi float –

답변

1

는 그냥 사전에 노선을 ViewData [ "htmlAttributes을"]와 "클래스"값

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

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