我正在使用HtmlEditor.EditorFor()来显示扩展编辑。
使用
设置HtmlEditor的HtmlFieldPrefix之后[
{
"text": "Subject1",
"children": [
{
"id": 1,
"text": "sub1"
}
]
},
{
"text": "Subject2",
"children": [
{
"id": 16,
"text": "sub2"
}
]
},
{
"text": "Subject3",
"children": [
{
"id": 22,
"text": "sub3"
}
]
}
]
我打电话
htmlHelper.ViewData.TemplateInfo.HtmlFieldPrefix = "MySpecialFieldPrefix";
在视图中,HtmlFieldPrefix为空,这会破坏我对模型的绑定。我希望它是htmlHelper.EditorFor(Expression)
!
"MySpecialFieldPrefix"
有人可以告诉我为什么它是空的吗?编辑器使用哪个HtmlHelper?
更新
似乎与htmlHelper的处理似乎不同(I)预期。
我不使用视图的HtmlHelper,而是创建一个新的(因为我必须更改模型)。 HtmlHelper.EditorFor似乎使用View的HtmlHelper而不是我创建的HtmlHelper(为什么会这样做?)。
当我为Views-HtmlHelper设置HtmlFieldPrefix时,前缀是正确的。
答案 0 :(得分:0)
您应该在ViewBag或ViewData中传递htmlHelper,然后将其强制转换为变量并在视图中使用@ htmlHelper.xxx而不是@ Html.xxx
在致电您的观点之前:
@{
htmlHelper.ViewData.TemplateInfo.HtmlFieldPrefix = "MySpecialFieldPrefix";
ViewBag.HtmlHelper = htmlHelper;
}
在您看来:
@{
HtmlHelper htmlHelper = (HtmlHelper)ViewBag.HtmlHelper;
}
@htmlHelper.EditorFor(m => m.Field)