1

因此,当用户单击编辑链接以编辑其中一个客户端(字段)并且另一个用户已经删除了该客户端时,如何向用户显示客户端(字段)已消失?

所以我正在使用 TempData 是另一种方法吗?我认为 jquery 但我不知道如何正确使用它

public ActionResult Edit (int id)
        {
            client cliente = db.Clients.Find(id);
            if (cliente != null)
            {
                return View(cliente);
            }
            TempData["message"] = string.Format("this client have be erase for other user");
            return RedirectToAction("Index");

        }

编辑:

和视图是这样的

<table class="widgets">
    <tr>
    <th></th>
        <th>
             @Html.ActionLink("Nombre", "Index", new { ordenacion = ViewBag.NameSortParm, filtro = ViewBag.filtro })
        </th>

    </tr>

@foreach (var item in Model) {
    <tr id="widget-id-@item.id">
         <td>
             @Html.ActionLink("Editar", "Edit", new { id=item.id })  |

                      @Ajax.ActionLink("Eliminar", "Eliminar", "Cliente",
                new {item.id },
                new AjaxOptions {
                    HttpMethod = "POST",
                    Confirm = string.Format("Esta Seguro que quiere eliminar '{0}'?", item.descripcion),
                    OnSuccess = "deleteConfirmation"
                })
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.descripcion)
        </td>

    </tr>
}
</table>

我猜剧本会是这样吗?所以我必须像使用@Ajax.ActionLink 对删除(消除)链接一样制作我的编辑链接,对吗?

<script type="text/javascript">

        var validateForEdit = function (id) {
            var validateCallbackFunction = function (result) {
                if (result) {
                    window.location = '/Client/Editar/' + id;
                }
                else {
                    window.Alert('this client have be erase for other user');
                }
            };

            $.post('/Client/ValidateForEdit/', { id: id }, validateCallbackFunction, 'json');
        }

</script>
4

1 回答 1

1

嗨,您可以在用户编辑之前使用以下代码验证数据

   var validateForEdit = function (id) {
        var validateCallbackFunction = function (result) {
            if (result) {
                window.location = '/Client/Edit/' + id;
            }
            else {
                Alert('this client have be erase for other user');
            }
        };

        $.post('/Client/ValidateForEdit/', { id: id }, validateCallbackFunction, 'json');
    }

和你的行动:

    [HttpPost]
    public JsonResult ValidateForEdit(int id)
    {
        var cliente = db.Clients.Find(id);
        return cliente != null ? Json(true) : Json(false);
    }

编辑:并且您必须替换以下代码

@Html.ActionLink("Editar", "Edit", new { id=item.id })

使用此代码:

<input class="button" type="button" value="Edit" onclick="validateForEdit(item.id)" />

希望这有帮助。

于 2012-07-11T22:43:45.717 回答