有没有办法将值从EditorTemplate传递到它的布局(不是网站_Layout,而是模板布局)
在MVC 5我有这样的事情:
EditorTemplates / MyStr.cshtml
@{ Layout = "_FieldLayout.cshtml"; ViewData.ModelMetadata.AdditionalValues.Add("__idpostfix","-cde"); } @Html.CustomHelper("")
CustomHelper使用2个输入标签,一个用于显示/编辑,另一个用于保持值,两个都有id,显示一个有-cde后缀
和_FieldLayout.cshtml有这个:
@{ var postfix = ViewData.ModelMetadata.AdditionalValues.ContainsKey("__idpostfix") ? ViewData.ModelMetadata.AdditionalValues["__idpostfix"] : string.Empty; } @Html.Label("",new {@for = ViewData.TemplateInfo.GetFullHtmlFieldId(string.Empty) + postfix}) ...
现在在mvc 6中AdditionalValues是一个ReadOnly字典,所以有另一种方法可以做到这一点,我最好的选择是在我需要后缀时使用不同的FieldLayout