通常,如果我的模型中有一个布尔字段,那是因为基础数据库具有位值。但是,我的用户希望在视图中使用是/否,而不是是/否或复选框。通常,我在视图模型中将bool转换为字符串。
我想知道是否有可能在数据模型而不是控制器中进行这种转换,而我几年前就已经学会了如何做。我进行了一些研究,并尝试从中转换原始字段:
public bool StudentInRoster { get; set; }
对此:
private bool? _studentInRoster;
public string StudentInRoster => _studentInRoster == true ? "Yes" : "No";
但是,ReSharper给我警告:
“字段_studentInRoster”从未分配”
所以我认为有些事情仍然不正确。有没有更好(即正确)的方法来进行这种类型的转换?我将需要将数据另存为bool,但将数据显示为是/否。
您可以使用显示模板来显示具有所需结果的属性。我认为这是最好的方法。
DisplayTemplates
在“共享”文件夹下创建一个文件夹,并向其中添加部分视图,并为其命名,例如(_myTemplate
),然后将以下代码粘贴至该文件夹:
@model bool
@if (Model)
{
@Html.Encode("Yes")
}
@if (Model == false)
{
@Html.Encode("No")
}
然后,您可以通过使用UIHintAttribute.UIHint
来向您的媒体资源添加数据注释,以使用此显示模板。
[UIHint("_myTemplate")]
public bool StudentInRoster { get; set; }
然后在您的View
:
@Html.DisplayFor(c => c.StudentInRoster)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句