중첩 된 사전을 EditorFor viewData에 전달하려고합니다.EditorForHtml의 htmlAttributes에 중첩 된 사전을 사용하는 ASP MVC 5.2
@{
var viewData = new RouteValueDictionary();
var htmlAttributes = new RouteValueDictionary();
htmlAttributes.Add("title", "foo");
viewData["htmlAttributes"] = htmlAttributes;
}
Html.EditorFor(model => model.SomeProperty, viewData);
문제는 tile = "foo"가 렌더링되지 않는다는 것입니다. 사용할 때
var htmlAttributes = new {title = "foo"};
모든 것이 예상대로 작동합니다.
내 응용 프로그램에서 동적으로 생성되기 때문에 htmlAttributes가 사전이어야합니다.
어떻게 사전을 전달할 수 있습니까? 이미 expandoObject로 thmlAttributes를 전달하려고 시도했으나 작동하지 않습니다.
이 경우를 나는 단순한 문자열 속성을 사용하고있는 Textbox로 렌더링해야합니다. MVC 5.1 이후로 htmlAttributes 속성을 html 속성으로 렌더링되는 additionalViewData 매개 변수에 추가 할 수 있습니다. 그래서 이것이 문제가되어서는 안됩니다. – wertzui
그 경우 –
대신 Html.TextBoxFor를 사용하십시오. 그러나 EditorFor에서 사용하고 싶습니다. 그런 식으로 2 개의 TextBoxes를 포함 할 수있는 자체 템플릿을 사용할 수도 있기 때문입니다. EditorFor를 사용하면 해당 "htmlAttributes"가 ViewData에 기록되고 해당 사용자 정의 템플리트의 모든 텍스트 상자가 자동으로 선택됩니다. – wertzui