【问题标题】:My Select List Binding Not Work Properly in Edit Portion我的选择列表绑定在编辑部分无法正常工作
【发布时间】:2021-03-12 17:16:18
【问题描述】:

我正在获取服务订单列表,并且最初服务状态现在作为管理员打开我负责状态更新我已经完成了一些类似使用 Java 脚本服务状态是枚举列表的事情

我的实际查看代码如下所示

<form asp-action="EditServiceStatus" asp-controller="Electronics" asp-route-id="@servieOrder.ServicesInquiryID" asp-route-ServiceStatus="@servieOrder.Servicesstatus"  method="post">
  <span id="confirmEdit_@servieOrder.ServicesInquiryID" style="display:none">
     <span>
      <select asp-for="@servieOrder.Servicesstatus" asp-items="Html.GetEnumSelectList<Servicesstatus>()">
        <option value="">Select Status</option>
      </select>
    </span>
 <input Class="btn btn-primary" type="submit" class="btn btn-danger" value="Yes"/>
   <span class="btn btn-primary" onclick="confirmEdit('@servieOrder.ServicesInquiryID', false)">No</span>
   </span>
 </form>
 <span id="mainSpan_@servieOrder.ServicesInquiryID">
    @servieOrder.status
</span>

现在提交此表单后如何从下拉列表中获取更改的值到控制器操作方法 我的控制器操作方法就是这样

[HttpPost]
  public async  Task<IActionResult> EditServiceStatus(int Servicesstatus, int Id)
    {
    try
        {
        }
     }

我尝试使用这种方式更改服务状态我想从下拉菜单中获取更改的值到操作方法 下拉选择列表获得打开、关闭、进行中和拒绝状态

【问题讨论】:

  • 嗨@ravipatel,我的回答是否帮助您解决了您的问题?如果可以,请您接受作为答案吗?如果没有,请您跟进让我知道吗?参考:How to accept as answer .谢谢。

标签: asp.net-core model-view-controller .net-core asp.net-core-mvc


【解决方案1】:

你可以通过asp-route-id传递id,因为id没有改变。但是状态改变了,所以你不能这样传递,只需改变selectlist的名称并与后端匹配即可:

<select asp-for="@servieOrder.Servicesstatus" name="Servicesstatus" asp-items="Html.GetEnumSelectList<Servicesstatus>()">

这是整个工作演示:

型号:

public class ServiceOrder
{
    public int ServicesInquiryID { get; set; }
    public int status { get; set; }
    public Servicesstatus Servicesstatus { get; set; }
}
public enum Servicesstatus
{
    Yes=1,
    No=2
}

查看:

@model IEnumerable<ServiceOrder>
<table class="table">
    <thead>
        <tr>
            <th>
                @Html.DisplayNameFor(model => model.ServicesInquiryID)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.Servicesstatus)
            </th>
            <th></th>
        </tr>
    </thead>
    <tbody>
        @foreach (var servieOrder in Model)
        {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => servieOrder.ServicesInquiryID)
            </td>
            <td>
                <form asp-action="EditServiceStatus" asp-controller="Home" asp-route-id="@servieOrder.ServicesInquiryID" method="post">
                    <span id="confirmEdit" >
                        <span>
                            <select asp-for="@servieOrder.Servicesstatus" name="Servicesstatus" asp-items="Html.GetEnumSelectList<Servicesstatus>()">
                                <option value="">Select Status</option>
                            </select>
                        </span>
                        <input Class="btn btn-primary" type="submit" class="btn btn-danger" value="Yes" />
                        <span class="btn btn-primary">No</span>
                    </span>
                </form>
            </td>
        </tr>
        }
    </tbody>
</table>

控制器:

public async Task<IActionResult> Index()
{
    var model = new List<ServiceOrder>()
    {
        new ServiceOrder(){ServicesInquiryID=1,Servicesstatus=Servicesstatus.Yes,status=1},
        new ServiceOrder(){ServicesInquiryID=2,Servicesstatus=Servicesstatus.No,status=2},
        new ServiceOrder(){ServicesInquiryID=3,Servicesstatus=Servicesstatus.Yes,status=1}
    };
    return View(model);
}

[HttpPost]
public void EditServiceStatus(int Servicesstatus, int Id)
{

}

结果:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-31
    相关资源
    最近更新 更多