0

以下は私のコーディングです。スイート アラートが 1 秒以内にポップアップ表示され、別のページに自動リダイレクトされる理由を教えてください。

HTML から:

$.ajax({
  url: "/ABC/AddST/",
  data: {
    "username": $("#username").val(),
    "fullname": $("#fullname").val()
  },
  type: "POST"
}).success(function(data) {
  swal({
    title: "Done!",
    text: "Sales Team was successfully added!",
    type: "success"
  }, function() {
    window.location.href = '/ABC/STList';
  });
}).error(function(data) {
  swal("Oops", "We couldn't connect to the server!", "error");
});

コントローラーから:

[HttpPost]
public ActionResult AddSalesTeam(string username, string fullname)
{
    var st = new Sales();

    if (ModelState.IsValid)
    {
        st.Username = username;
        st.FullName = fullname;
        db.User.Add(st);
        db.SaveChanges();
        return RedirectToAction("SalesTeamList");
    }
    return View();
}
4

3 に答える 3

1

私が質問から理解している限り、アラートを表示し、ユーザーが確認ボタンをクリックすると/ABC/STList、(ユーザーを自動的にリダイレクトするのではなく) ページにリダイレクトしますよね? もしそうなら。これで試しましたか?:

swal({
  title: "Done!",
  text: "Sales Team was successfully added!",
  type: "success",
  showCancelButton: false,
  confirmButtonText: "Ok",   
  closeOnConfirm: false
}, function() {
  window.location.href = '/ABC/STList';
});

========================

編集: 必要に応じて、行を削除すると、[ OKcloseOnConfirm: false ] ボタンをクリックした後にポップアップが閉じられます (ただし、リダイレクトされます)。ボタンをクリックした後にポップアップが閉じられたことをエンド ユーザーが確認できるようにするためです。

于 2016-07-08T17:08:07.487 に答える
1

タイマーを設定する必要があります。

swal({
  title: "Done!",
  text: "Sales Team was successfully added!",
  type: "success",
  timer: 1000, // Wait 1 second
  showConfirmButton: false // No reason to show the button
}, function() {
  window.location.href = '/ABC/STList';
});
于 2016-07-08T16:54:32.997 に答える
0

$ajax 関数の前後に e.preventDefault() を追加するだけで済みます。

e.preventDefault();  
$.ajax({
  url: "/ABC/AddST/",
  data: {
    "username": $("#username").val(),
    "fullname": $("#fullname").val()
  },
  type: "POST"
}).success(function(data) {
  swal({
    title: "Done!",
    text: "Sales Team was successfully added!",
    type: "success"
  }, function() {
    window.location.href = '/ABC/STList';
  });
}).error(function(data) {
  swal("Oops", "We couldn't connect to the server!", "error");
});
e.preventDefault(); 
于 2016-07-09T11:52:59.407 に答える