1

ユーザーが編集リンクをクリックしてクライアント (フィールド) の 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 に答える