0

MVC4に編集機能があります

    public ActionResult Edit(UserGroup usergroup)
    {
            usergroup.created_date = DateTime.Now;
            usergroup.modified_date = DateTime.Now;
            db.Entry(usergroup).State = EntityState.Modified;
            db.SaveChanges();
            return Json(new { success = true });
    }

私のJqueryボタンクリックイベント

    $(".edit-link").click(function () {
    var id = $(this).attr("id");
    $(".edit-dialog").dialog({
        width: 600,
        position: { my: "center", at: "center", of: window },
        title: "Edit User Group"
    }).load("/UserGroup/Edit/" + id);
    return false;
});

私のJqueryフォーム送信イベント

$("#frmEdit").submit(function () {
    var id = $(".edit-link").attr("id");
    $.ajax({
        url: "/UserGroup/Edit/" + id,
        type: "POST",
        data: $(this).serialize(),
        datatype: "json",
        success: function (result) {
            if (result.success) {
                window.alert("User group details modified successfully.");
                location.reload();
            } else {
                $(".edit-dialog").html(result);
                $.validator.unobtrusive.parse((".edit-dialog").dialog);
            }
        }
    }).load("/UserGroup/Edit/" + id);
    return false;
});

編集: その結果、window.alert を実行する代わりに、{success = true} のテキスト行のみを含む空白のページ (URL の例: localhost:1234/UserGroup/Edit/Admin) が表示されます。

これについて何か考えはありますか?jquery "success: function (result) { //code }" の下のこの行にさえ到達しなかったようです

ありがとう。

4

1 に答える 1

1

アクションの結果を jsonresult に返す必要があります

その他のことは、次のように Edit jsonresult に Httppost 属性を配置することです。

[HttpPost]
public JsonResult Edit(UserGroup usergroup)
{
        usergroup.created_date = DateTime.Now;
        usergroup.modified_date = DateTime.Now;
        db.Entry(usergroup).State = EntityState.Modified;
        db.SaveChanges();
        return Json(new { success = true });
}

更新:フォーム送信イベントの後にロードイベントを削除してから試してください

$("#frmEdit").submit(function () {
var id = $(".edit-link").attr("id");
$.ajax({
    url: "/UserGroup/Edit/" + id,
    type: "POST",
    data: $(this).serialize(),
    datatype: "json",
    success: function (result) {
        if (result.success) {
            window.alert("User group details modified successfully.");
            location.reload();
        } else {
            $(".edit-dialog").html(result);
            $.validator.unobtrusive.parse((".edit-dialog").dialog);
        }
    }
});
return false;
});
于 2012-11-29T04:21:12.560 に答える