我有这样的观点:
@model IEnumerable<PMS.Models.Activity_Contractor>
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_LayoutPageArchitect.cshtml";
}
<h2>Index</h2>
<p>
@*@Html.ActionLink("Create New", "Create")*@
</p>
<table>
<tr>
@*<th>
@Html.DisplayNameFor(model => model.A_C_ID)
</th>*@
<th>
@Html.DisplayName("ProjectName")
</th>
<th>
@Html.DisplayNameFor(model => model.ProjectActivityMaster.ActivityName)
</th>
<th>
@Html.DisplayNameFor(model => model.ContractorMaster.ContractorName)
</th>
<th>
@Html.DisplayNameFor(model => model.IsActive)
</th>
@* <th>
@Html.DisplayNameFor(model => model.CreatedBy)
</th>
<th>
@Html.DisplayNameFor(model => model.CreatedON)
</th>
<th>
@Html.DisplayNameFor(model => model.UpdatedBy)
</th>
<th>
@Html.DisplayNameFor(model => model.UpdatedON)
</th>*@
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
@*<td>
@Html.DisplayFor(modelItem => item.A_C_ID)
</td>*@
<td>
@Html.Label("Project")
</td>
<td>
@Html.DisplayFor(modelItem => item.ProjectActivityMaster.ActivityName)
</td>
<td>
@Html.DisplayFor(modelItem => item.ContractorMaster.ContractorName)
</td>
<td>
@Html.DisplayFor(modelItem => item.IsActive)
</td>
@* <td>
@Html.DisplayFor(modelItem => item.CreatedBy)
</td>
<td>
@Html.DisplayFor(modelItem => item.CreatedON)
</td>
<td>
@Html.DisplayFor(modelItem => item.UpdatedBy)
</td>
<td>
@Html.DisplayFor(modelItem => item.UpdatedON)
</td>*@
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.A_C_ID }) |
@Html.ActionLink("Details", "Details", new { id=item.A_C_ID }) |
@Html.ActionLink("Delete", "Delete", new { id=item.A_C_ID })
</td>
</tr>
}
</table>
我的item.IsActive值曾经是1/0我希望看到它为True如果1和False id为0.我该怎么做?
答案 0 :(得分:1)
我的item.IsActive值曾经是1/0我想把它看成是真如果1和 假身份证0.我怎么能这样做?
INT包含1/0
如果您希望完全控制可以显示的内容,那么最好使用显示模板。
如果您还没有,请在DisplayTemplates
文件夹下创建一个名为Shared
的文件夹。然后创建一个名为CustomInt.cshtml
的文件,您当然可以选择任何您想要的名称除了那些与数据类型相似的名称(例如Int,Boolean等)。然后在模板上你需要这个:
@model System.Int32
@if (Model == 0)
{
@:True
}
else if (Model==1) {
@:False
}
然后在您希望显示IsActive
的视图上,您需要执行此操作:
@Html.DisplayFor(m => m.IsActive, "CustomInt")
请注意,我们为html helper指定了模板名称。
使用模板时需要非常小心。由于IsActive
是一个int,因此它可以具有0
和1
以外的值。因此,如果该值不是那两个,则不会打印出任何内容。但这不是一个大问题,因为您可以轻松添加另一个else
并打印错误或其他内容。但我认为您非常确定IsActive
将始终拥有0
或1
。
修改模板以捕获意外值:
@model System.Int32
@if (Model == 0)
{
@:True
}
else if (Model==1) {
@:False
}
else {
@:What is this value? The system was hacked!
}
答案 1 :(得分:0)
您可以在viewmodel上解析IsActive以返回true或false。
public class Myviewmodel
{
public string IsActive { get; set; }
}
public class Mymodel
{
public bool IsActive { get; set; }
}
然后在将模型从模型映射到viewmodel时将你的布尔值解析为字符串?
提示:尝试使用NBuilder