2017-08-24 12 views
0

ストアドプロシージャを試行した後、正常または不成功のメッセージを表示しようとしています。私のSave ActionResultはSaveボタンクリックで呼び出されますが、インデックスにリダイレクトする前にメッセージボックスを表示します。最初にビューを返し、次にRedirectToActionを返す方法はありますか?警告メッセージを表示:[OK]ボタンをクリックしてRedirectToActionをクリックします。

[HttpPost] 
    public ActionResult Save(string submit, Models.KnownIssues knownIssue) 
    {   

     UpdateKnownIssue(knownIssue); 
     InsertKnownIssue(knownIssue); 


     return RedirectToAction("Index"); 

    } 

viewbagアラート:へ

保存ボタンポイント

public ActionResult Edit(KnownIssues knownIssue, string submit) 
    { 
     if (UpdateKnownIssue(knownIssue)) 
     { 
      ViewBag.ShowAlert = "<script>alert('Successfully Edited'); window.location.href = '/KnownIssues';</script>"; 
     } else 
     { 
      ViewBag.ShowAlert = "<script>alert('Unseccessful. Try again.');</script>"; 
     } 
     return View(knownIssue); 
    } 

答えて

1

あなたのフォームはAjaxフォームを提出し、戻ってあなたのアクションメソッドからのJSONレスポンスを返すように提出する変換することができます。あなたのajaxコールの成功イベントでは、メッセージをユーザーに表示してから、javascriptを使用してリダイレクトを行うことができます。

以下のjQueryコードを使用して、フォーム送信を促進することができます。

$(function() { 

    $("form").submit(function(e) { 
     e.preventDefault(); 
     var f = $(this); 
     $.post(f.attr("action"), f.serialize(),function(res) { 
      if(res.Status==="success") 
      { 
       alert(res.Message); 
       window.location.href="your new url here"; 
      } 
     }); 
    }); 

}); 

とあなたのアクションメソッドは、別のオプション

[HttpPost] 
public ActionResult Save(string submit, Models.KnownIssues knownIssue) 
{ 
    // your code 
    if (Request.IsAjaxRequest()) 
    { 
     return Json(new {Status = "success", Message="Succesfully updated"}); 
    } 
    return RedirectToAction("Index"); 
} 

JSONレスポンスを返すように更新した次のページにメッセージを表示することです。このためには、現在のフォーム提出手法(ajaxは不要)を使用し、TempDataを使用してメッセージを格納することができます。次のアクションメソッドでは、ビュー内のTempDataを読み、ユーザーにメッセージを表示します。サンプルコードについては、以下の記事を見てみましょうことは

Display message in a toastr after controller method finish

0

これを試してみてください:インデックスビューで

return RedirectToAction("Index", "Home", new { ac = "success" }); 

を行う(NBは:ブートストラップ・アラートを使用しています):

@{ 
    var parameter = Request.QueryString["ac"]; 
    //Check parameter here and display Message 
    if (parameter == "success") 
    { 
     <div class="alert alert-success alert-dismissable"> 
      <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a> 
      <strong><i class="fa fa-exclamation-triangle" aria-hidden="true"></i> Record Added Successfully.</strong> 
     </div> 
    } 
} 
関連する問題