如何在用户编辑字段时向用户显示数据已消失?

时间:2012-07-11 22:17:06

标签: c# jquery asp.net asp.net-mvc

所以当用户点击编辑链接编辑其中一个客户端(字段)而另一个用户已擦除该客户端时,如何向用户显示客户端(字段)已消失?

所以我使用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>

1 个答案:

答案 0 :(得分: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)" />

希望得到这个帮助。