我只想为字符串属性创建一个显示模板,并为所有其他属性使用默认值。
我尝试在 Views/Shared/DisplayTemplates 中创建一个 string.cshtml,其内容如下:
@model string
@Html.TextBoxFor(m => m, new { @readonly = "readonly" })
现在,当我尝试打开使用 DisplayFor(m => m.property) 的任何视图时遇到问题,它显示如下错误:传递到字典中的模型项的类型为“System.DateTime”,但该字典需要'System.String' 类型的模型项。或:传入字典的模型项的类型为“System.Int64”,但此字典需要“System.String”类型的模型项。
我知道我可以通过为使用的每种类型添加显示模板来解决这个问题,但我想也可以对未定义自定义模板的所有类型使用“默认”模板?
更新 达林回答后,我检查了布拉德的教程并将模板更改为:
@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, new { @readonly = "readonly" })
这基于“默认”模板,适用于所有类型。