我曾经DisplayTemplates在MVC5中使用过以摆脱foreach视图循环
如果我有一个ProductDto和ProductController
我会放置ProductDto.cshtml下
视图/产品/ DisplayTemplates /
要么
视图/共享/ DisplayTemplates /
将模板用于产品列表:我将用foreach以下行替换循环,以使用模板列出所有产品:@Html.DisplayFor(m=>m.Products);
例如,如果我想ProductDto在不同的显示模板中使用相同的模型(),ProductDtoPrintView那么我将Views/Product/DisplayTemplates/使用name 创建另一个模板ProductDtoPrintView.cshtml并传递templateNameas
@Html.DisplayFor(m=>m.Products,"ProductDtoPrintView")。
但这似乎在MVC Core 2.0中不起作用
我只能为每个模型使用一个模板。而且templateName似乎根本没有任何影响。
我的测试:
什么时候ProductDto.cshtml被放置Views/Product/DisplayTemplates/
如果我只有一个显示模板作为ProductDto模型,那么templateName实际上似乎没有任何影响。它可以使用任何名称或不使用名称。
@Html.DisplayFor(x =>x.Products)-作品
@Html.DisplayFor(x =>x.Products,"")-作品
@Html.DisplayFor(x =>x.Products,"whatever")-作品
但是当我为相同的模型添加另一个显示模板时 ProductDtoPrintView.cshtml
然后事情就有点搞砸了。
@Html.DisplayFor(x =>x.Products) - 作品
@Html.DisplayFor(x =>x.Products,"") - 作品
@Html.DisplayFor(x =>x.Products,"") - 作品
@Html.DisplayFor(x =>x.Product, "ProductDtoPrintView") -无效500内部服务器错误。
@Html.DisplayFor(x …
display-templates asp.net-core-mvc asp.net-core asp.net-core-mvc-2.0