Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 4 在MVC视图中显示时,将整数值替换为字符串_Asp.net Mvc 4 - Fatal编程技术网

Asp.net mvc 4 在MVC视图中显示时,将整数值替换为字符串

Asp.net mvc 4 在MVC视图中显示时,将整数值替换为字符串,asp.net-mvc-4,Asp.net Mvc 4,我有这样的看法: @model IEnumerable<PMS.Models.Activity_Contractor> @{ ViewBag.Title = "Index"; Layout = "~/Views/Shared/_LayoutPageArchitect.cshtml"; } <h2>Index</h2> <p> @*@Html.ActionLink("Create New", "Create")*@ </

我有这样的看法:

@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>
@model IEnumerable
@{
ViewBag.Title=“Index”;
Layout=“~/Views/Shared/_LayoutPageArchitect.cshtml”;
}
指数

@*@ActionLink(“新建”、“创建”)*@

@* @DisplayNameFor(model=>model.A\u C\u ID) *@ @Html.DisplayName(“项目名称”) @DisplayNameFor(model=>model.ProjectActivityMaster.ActivityName) @DisplayNameFor(model=>model.ContractorMaster.ContractorName) @DisplayNameFor(model=>model.IsActive) @* @DisplayNameFor(model=>model.CreatedBy) @DisplayNameFor(model=>model.CreatedON) @DisplayNameFor(model=>model.updateBy) @DisplayNameFor(model=>model.updateOn) *@ @foreach(模型中的var项目){ @* @DisplayFor(modeleItem=>item.A\u C\u ID) *@ @Html.Label(“项目”) @DisplayFor(modelItem=>item.ProjectActivityMaster.ActivityName) @DisplayFor(modelItem=>item.ContractorMaster.ContractorName) @DisplayFor(modelItem=>item.IsActive) @* @DisplayFor(modelItem=>item.CreatedBy) @DisplayFor(modelItem=>item.CreatedON) @DisplayFor(modelItem=>item.UpdatedBy) @DisplayFor(modelItem=>item.UpdateOn) *@ @ActionLink(“编辑”,“编辑”,新的{id=item.A_C_id})| @ActionLink(“细节”,“细节”,新的{id=item.A_C_id})| @ActionLink(“删除”,“删除”,新的{id=item.A_C_id}) }

我的item.IsActive值以前是1/0我希望在id为1和id为0时将其视为True。我该怎么做呢?

您可以在viewmodel上解析IsActive以返回true或false

public class Myviewmodel
{
    public string IsActive { get; set; }

}

public class Mymodel
{
    public bool IsActive { get; set; }
}
然后在将布尔值从模型映射到viewmodel时将其解析为字符串

提示:尝试使用NBuilder

我的item.IsActive值以前是1/0,如果1和 错误id 0。我该怎么做

包含1/0的INT

如果您想完全控制您可以显示的内容,那么最好使用显示模板

创建模板 在
共享
文件夹下创建一个名为
DisplayTemplates
的文件夹(如果您仍然没有)。然后创建一个名为
CustomInt.cshtml
的文件,您当然可以选择想要的任何名称,除了那些类似于数据类型的名称(例如Int、Boolean等)。然后在模板上,您需要具有以下内容:

@model System.Int32

@if (Model == 0)
{
    @:True
}
else if (Model==1) {
    @:False
}
你如何使用它 然后,在您想要显示
IsActive
的视图上,您需要执行以下操作:

@Html.DisplayFor(m => m.IsActive, "CustomInt")
请注意,我们为html助手指定了一个模板名称

陷阱 使用模板时需要非常小心。由于
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!
}

IsActive
是否为布尔类型?nop INT包含1/0Awesome@von v。很好的回答和解释:)