如果我有这样的ViewModel:
public class MyViewModel
{
[UIHint("SomeTemplate")]
public ICollection<SomeViewModel> Submodel { get; set; }
}
还有一个带有这样一行 HTML的强类型视图:
@Html.DisplayFor(model => model.Submodel)
还有一个带有这样签名的显示模板:
@model MvcApplication1.Models.SomeViewModel
我收到一条错误消息,提示“模型项是类型List<SomeViewModel>
,但此字典需要类型的模型SomeViewModel
。”。
这是有道理的,但我希望 MVC 的内置模板智能能够发挥作用,看到它是一个IEnumerable
东西,并努力调用我的模板 N 次,就像它通常在Html.DisplayFor
没有提示的情况下所做的那样。
所以它看起来像[UIHint]
覆盖了那个功能?
显然,我可以指向另一个接受集合和调用的模板Html.DisplayForModel()
,基本上模拟 MVC 智能。但我希望避免这种情况。老实说,我宁愿做一个 foreach 循环,也不愿拥有那 1 行“包装器”模板。
有更好的想法吗?
就像我想说:“嘿 MVC,为这些人中的每个人渲染一个模板。但不是使用名称约定来查找模板,这里有一个提示”。