控制器中的编辑操作未更新

时间:2019-07-29 17:38:14

标签: asp.net-mvc .net-core

当我编辑一个项目并返回到索引视图时,该项目不会显示我对其进行更新的内容。

我想我知道问题出在哪里,但不确定如何解决。在我的服务类中,我有一个CreateEditItem方法,当我遍历代码时,它会达到if条件<= 0。因此,当我单击“提交”按钮提交更新时,它的行为就像id为0。我不确定该如何解决。我需要一种单独的编辑方法吗?如果是这样,那应该是什么样?

  public bool CreateEditItem(Item item)
    {

        if (item.ItemId <= 0)
        {
            var maxId = _mockList.Max(p => p.ItemId);
            item.ItemId = maxId + 1;

            _mockList.Add(item);
            return true;
        }


        var itemToEdit = _mockList.FirstOrDefault(p => p.ItemId == 
        item.ItemId);

        itemToEdit = item;
        return true;

    }

控制器中的动作

   [HttpPost]
    public IActionResult EditItem(Item itemToEdit)
    {
        _itemService.CreateEditItem(itemToEdit);

        return RedirectToAction(nameof(Index), new { id = 
       itemToEdit.ItemId });
    }

查看:

        <div class="row">
                <form asp-action="EditItem">
                    <div asp-validation-summary="ModelOnly" class="text- 
            danger"></div>
                    <div class="container form-group">

                        <div class="row">
                            <div class="col-md-2">As Of : <label 
           for="AsOf" /></div>
                            <div class="col-md-4"><input id="AsOf" 
         value="@Model.ItemToEdit.AsOf" name="AsOf" type="date" /></div>
                        </div>

                        <br />

                        <div class="row">
                            <div class="col-md-2">Title Summary : <label 
           for="TitleSummary" /></div>
                            <div class="col-md-2"><input id="TitleSummary" 
         value="@Model.ItemToEdit.Title" name="Title" type="text" /></div>
                        </div>                        

                        <br />
                        <br />

                        <div class="row">
                            <div class="col-md-2"><input type="submit" 
                    value="Submit" class="btn btn-primary" /></div>                               
                        </div>
                    </div>

                </form>
            </div>

我希望当我单击“提交”按钮提交更新时,它将显示更新的标题和/或截止日期。

0 个答案:

没有答案