2017-01-16 11 views
0

MVCでは、エラーページが発生したときにメッセージをリダイレクトしようとしています。エラーページが開きますが、エラーメッセージは表示されません。 これはプロセスを開始する方法です。MVCがエラーページにリダイレクトしてもメッセージが表示されない

 [HttpPost] 
    public ActionResult SaveSurvey(vmFollowUpSurvey model) 
     { 
     var result = surveyBL.postSurveyResults(model); 

     if (result != "Record Saved") 
      { 
      ModelState.AddModelError(string.Empty, "Survey not saved"); 
      var redirectUrl = new UrlHelper(Request.RequestContext).Action("Index", "Error"); 
      return Json(new { Url = redirectUrl }); 
      } 
     else 
      { 
      ModelState.AddModelError(string.Empty, "Survey completed"); 
      var redirectUrl = new UrlHelper(Request.RequestContext).Action("Index", "Login"); 
      return Json(new { Url = redirectUrl }); 
      } 

     } 

私のErrorControllerは、だから私は、これは表示するために取得するために何もしませんでした。この

<h2>Survey Information Page</h2> 

<div> 

@using (Html.BeginForm("Index", "Error")) 
{ 
<div class="container"> 
    <div class="row"> 
     @Html.ValidationSummary(false, "", new { @class = "text-info" }) 
    </div> 
</div> 
} 


</div> 

として

 public ActionResult Index() 
     { 
     return View(); 
     } 

そして、私のビュー・ディスプレイの方法を持っていますか?

+0

あなたがJSON内のエラーを返されていません。

if (result != "Record Saved") { Session["Error"] = "Survey not saved"; ... } 

は、その後、あなたのエラービュー内、あなたはこのような何かを行うことができますか? –

+0

あなたはアイデアを得たか、コードを書き直す手助けをしなければなりませんか? –

+0

私はValidationsummaryがその –

答えて

0

あなたErrorController.Index()方法が使用されているモデルの知識がないので、ModelStateにメッセージを追加すると、あなたのエラーページがそれにアクセスできませんを意味します。別のビューにリダイレクトする場合は、これを処理する適切な方法は、エラーをSessionの内部に入れることです。

<h2>Survey Information Page</h2> 

<div> 

    @using (Html.BeginForm("Index", "Error")) 
    { 
     <div class="container"> 
      <div class="row"> 
       <span class="error-message">@Session["Error"]</span> 
      </div> 
     </div> 
    } 

</div> 
0
   [HttpPost] 
    public ActionResult SaveSurvey(vmFollowUpSurvey model) 
     { 
     var result = surveyBL.postSurveyResults(model); 

     if (result != "Record Saved") 
      {   
       return RedirectToAction("Index", "Error", new { ErrorMessage= "Survey not saved"}); 
      } 
     else 
      { 
      ModelState.AddModelError(string.Empty, "Survey completed"); 
      var redirectUrl = new UrlHelper(Request.RequestContext).Action("Index", "Login"); 
      return Json(new { Url = redirectUrl }); 
      } 

     } 


     --- ErrorModel Class 

     namespace WebApplication3.Models 
    { 
     public class ErrorModel 
     { 
      public string ErrorMessage { get; set; } 
     } 
    } 

    --- Error Index.html code 

    @model WebApplication3.Models.ErrorModel 
    <h2>Survey Information Page</h2> 

    <div> 

     @using (Html.BeginForm("Index", "Error")) 
     { 
      <div class="container"> 
       <div class="row"> 
        @Html.ValidationSummary(false, Model.ErrorMessage , new { @class = "text-info" }) 
       </div> 
      </div> 
     } 


    </div> 
関連する問題