我正在尝试@Html.Editor
用于字典条目,但我无法让它工作。我正在运行 ASP.Net Core 1.0。
示例模型:
public class TestModel
{
public string Title { get; set; }
public IDictionary<int, Fruit> Basket { get; set; }
}
这工作正常:
@foreach (var key in Model.Basket.Keys)
{
@Html.EditorFor(m => m.Basket[key])
}
但这不会:
@foreach (var key in Model.Basket.Keys)
{
@Html.Editor($"Basket[{key}]")
}
在后者中,表达式Basket[1]
等未解决,我总是得到一个空白文本框。如果我强制它使用我的Fruit
编辑器模板,则模型始终为空。
我知道EditorFor
尽可能使用它会更好,但在我真正的、非平凡的应用程序中,我是IHtmlHelper.Editor(expression)
从内部调用的TagHelper
......像这样:
@foreach (var key in Model.Basket.Keys)
{
<mytaghelper for="Baskey[key]" />
}
而在TagHelper
'sProcess
方法中:
if (For != null)
{
(_htmlHelper as HtmlHelper)?.Contextualize(ViewContext);
tag.InnerHtml.Append(_htmlHelper.Editor(For.Name));
}
虽然我有ModelExpression
(" For
") ,但TagHelper
我认为Editor
除了我已经尝试过之外,没有其他方法可以调用。
谢谢你的帮助!