akd*_*akd 5 display-templates asp.net-core-mvc asp.net-core asp.net-core-mvc-2.0
我曾经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 =>x.Products, "ProductDto") -不工作-500错误
@Html.DisplayFor(x =>x.Products, "DisplayTemplates/ProductDto")-工作并返回ProductDto.cshtml模板
@Html.DisplayFor(x =>x.Products, "DisplayTemplates/ProductDtoWhatever")-工作并返回ProductDto.cshtml模板
@Html.DisplayFor(x =>x.Products, "DisplayTemplates/ProductDtoPrintView")-工作并返回ProductDto.cshtml模板
基本上,除非删除ProductDto.cshtml文件,否则我无法使ProductDtoPrintView正常工作。
有人遇到同样的问题吗?以及该DisplayTemplate在MVC Core中应如何正常工作?
| 归档时间: |
|
| 查看次数: |
976 次 |
| 最近记录: |