首页 > 解决方案 > ASP.NET Core 视图 - 根据用户输入传递更改的输出值

问题描述

在我的模型中,在其他列中,我的Status列定义如下:

[Column(TypeName = "BIT")]
[Display(Name = "Status")]
public bool Status { get; set; }

所以,它只能有值10。代替10在索引视图中,我必须在行中显示文本值:已激活(对于 1)和已停用(对于 0)。我已经做到了:

  <td>@(item.Status ? "Activated " : "Deactivted ")</td>

我的问题是 - 在编辑视图中,我如何在下拉列表中显示值“激活”和“停用”并且在提交时实际上传递 1 或 0?

到目前为止我有这个代码:

    <div class="form-group">
        <label asp-for="Status" class="control-label"></label>
        <select class="form-control" asp-for="Status">
            <option>Activated</option>
            <option>Deactivated</option>
        </select>
    </div>

但是这段代码传递的是文本(激活或停用)而不是 0 或 1。所以我需要插入类似if "Activated" pass 1 othervise pass 0. 我该怎么做?

标签: asp.netasp.net-core

解决方案


尝试使用相应value的属性truefalse值:

    <select class="form-control" asp-for="Nkz10Status">
        <option value="true">Activated</option>
        <option value="false">Deactivated</option>
    </select>

推荐阅读