1

楽しみに追加するためにjquerymobileも使用しています。私がやりたいのは、単に投稿をして同じページにとどまるということです。ただし、ログインページにリダイレクトされると、ポップアップは機能しますが、最終的にはログインページに移動します。

  function UpdateClient(data) {
                var baseUrl = '@Url.Action("MobileAppointmentEdit")';
                $.ajax({
                    url: baseUrl,
                    type: 'POST',
                    data: {Id:'@Model.Id' },
                    success: function(response) {
                       $("#popupSaved").popup();
                        return false;
                    }
                });
            }

[HttpPost]
        public ActionResult MobileAppointmentEdit(MobileAppointment appointment)
        {
            if (appointment !=null)
            {

//Do stuff

            }

            return null;
        }
4

2 に答える 2

1

何かのようなもの

function UpdateClient(data) {
                var baseUrl = '@Url.Action("MobileAppointmentEdit")';
                $.ajax({
                    url: baseUrl,
                    type: 'POST',
                    dataType:'json'
                    data: {Id:'@Model.Id' },
                    success: function(response) {
                     if(response.Success)
                     {  
                       $("#popupSaved").popup();
                     }
                   else{
                       $("#popupNotSaved").popup();}

                    }
            });
        }

サーバー側では、次JsonResultのように戻る必要があります

[HttpPost]
        public ActionResult MobileAppointmentEdit(MobileAppointment appointment)
        {
            if (appointment !=null)
            {

             //Do stuff     
             return Json(new {Success = true});

            }

            return Json(new{Success = false});
        }

失敗した場合は、エラーメッセージのようにjsonオブジェクトに追加のフィールドを送信できることに注意してください。

于 2013-03-25T12:17:56.630 に答える
1

成功したAJAXコールバックからfalseを返しているようですが、これは意味がありません。UpdateClientなんらかのフォームの送信ボタンからこの関数を呼び出しているようです。デフォルトのアクションをキャンセルするには、この関数からfalseを返すようにしてください。例えば:

<input type="submit" value="Save" onclick="return UpdateClient();" />

次に、関数自体からfalseを返します。

function UpdateClient(data) {
    var baseUrl = '@Url.Action("MobileAppointmentEdit")';
    $.ajax({
        url: baseUrl,
        type: 'POST',
        data: { id: '@Model.Id' },
        success: function(response) {
            $("#popupSaved").popup();
        }
    });

    return false; // <!-- here, that's the important bit
}
于 2013-03-25T13:01:03.257 に答える