我正在为学生记录进行测试申请。我在html表格中显示它。但是,我想将像True或False的值转换为活动/非活动。对于男性/女性也是0或1的值。
DB
[Id] INT IDENTITY (1, 1) NOT NULL,
[StudentName] VARCHAR (100) NOT NULL,
[RollNo] INT NOT NULL,
[Address] VARCHAR (200) NOT NULL,
[Sex] INT NOT NULL,
[Active] BIT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
模型
public class Student
{
public Student();
public bool? Active { get; set; }
public string Address { get; set; }
public int Id { get; set; }
public int RollNo { get; set; }
public int Sex { get; set; }
public string StudentName { get; set; }
}
查看
<div class="table-responsive">
<table class="table table-condensed table-bordered table-responsive table-hover" >
<thead>
<tr>
<th>Student Name</th>
<th>Student Roll No</th>
<th>Student Sex</th>
<th>Student Address</th>
<th>Status</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model.Students)
{
<tr>
<td>@item.StudentName</td>
<td>@item.RollNo</td>
<td>@item.Sex</td>
<td>@item.Address</td>
<td>@item.Active</td>
</tr>
}
</tbody>
</table>
控制器
[Authorize]
public ActionResult Index()
{
SchoolDbEntities db = new SchoolDbEntities();
StudentVM vm = new StudentVM();
vm.Students = db.Students.ToList();
return View(vm);
}
答案 0 :(得分:1)
您可以使用三元运算符
<td>@(item.Active ? "Active" : "InActive")</td>
<td>@(item.Sex==1 ? "Female" : "Male")</td>
如果Active
属性是可以为空的bool,则需要在进行值比较之前检查属性是否为null。
<td>
@if (item.Active!= null)
{
@(item.Active.Value ? Html.Raw("Active") : Html.Raw("InActive"))
}
</td>
如果不是NULL
,则上述代码将根据值Active属性值呈现Active或Inactive。如果是NULL
,则不会打印任何内容。
您可以将其移动到辅助方法,以便您的视图更清晰。
修改:根据您的评论,您需要
如果为null或false则为“InActive”,否则为“Active”
您可以在检查“True”
的值之前添加空检查<td>@(item.Active!=null && item.Active.Value ? "Active" : "InActive")</td>
答案 1 :(得分:1)
只需输入字段值:
<td>@item.Sex</td>
只会在值上调用ToString()
。但是你可以包含一个任意表达式:
<td>@(item.Sex == 0 ? "Male" : "Female")</td>
(处理0和1之外的其他值将需要更复杂的表达式,可能在模型类型的辅助函数中。)
这也适用于布尔值:
<td>@(item.Acive ? "Active" : "Inactive")</td>