2

jquery ダイアログを終了した後、現在のページを ajax/refresh したい。

foreach ループを含むビューを持っています。データはモデルから引き出され、ループごとに編集/削除の 2 つのボタンがあります。「編集ボタン」をクリックすると、編集用にjquery UIダイアログが開かれ、Jqueryダイアログを保存すると、ダイアログを終了した後にビューのデータをAjax/更新する必要があります(特に編集されたデータはもちろん) )。

どうすれば達成できますか?

ありがとう

これは私の見解です:

@{
    foreach (var item in Model) {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.IdPhoto)
            </td>
            <td>
                @Html.TextAreaFor(modelItem => item.Date)
            </td>
            <td>
                @Html.TextAreaFor(modelItem => item.Nom)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Category)
            </td>
            <td>
                @Html.CheckBoxFor(modelItem => item.Actif)
            </td>
            <td>

            <button class="Edit" value="@item.IdPhoto">Edit</button> 
            <button class="Delete" value="@item.IdPhoto">Delete</button> 

            </td>
        </tr>
    }
}
4

2 に答える 2

4

私の提案は、jQuery を使用して部分ビューから編集/削除する情報をロードすることです。次に、jQuery ダイアログから編集/削除できます。完了したら、jQuery を使用してその部分ビューをもう一度リロードします。

ビューのコードは、次の行に沿ったものになります。

$(document).ready(function () {

    LoadInfo(); //Loads partial view

});

function LoadInfo() {

    $.get("MyAction", { param1 : myParameter }, function (data) {

        $("#mydata").empty();
        $("#mydata").html(data);
    });
}

そしてあなたのコントローラーで:

    [HttpGet]
    public virtual ActionResult MyAction(parameters)
    {
        var query = GetMyDataModel();

        return PartialView("_MyPartialViewName", query);
    }

編集/削除が完了したら、LoadInfo() をもう一度呼び出すと、ページのその部分がリロードされます。

お役に立てれば。

于 2012-06-03T21:52:58.143 に答える