2016-07-06 3 views
0

私はプログラミングにあまり経験がありませんので、これは非常に明白な質問である場合は事前にお詫び申し上げます。mvcの他のビューから記入フォームに戻る方法

私はユーザーが自分の情報を入力するフォームを持っています。それはHttpPostで確認され、連絡先情報が表示されている別のページに送信され、すべてが整っているかどうかをユーザーが確認できるようになります。 これを修正するために以前のフォームに戻るためのボタンがありません。

問題:訂正のために戻ることを除いて、すべてが完璧に機能します。

どのように入力したフォームに戻ることができますか?以下は

は、これまでの私のコードです:

索引コントローラー:

public ActionResult DefaultForm(QuestionViewModel viewModel) 
    {   
     //method i wrote for populating the dropdown 
     dropdownPopulate(viewModel); 
     return View(viewModel);   
    } 

    [HttpPost] 
    public ActionResult DefaultForm(QuestionViewModel viewModel, string tbButton) 
    { 
     if (ModelState.IsValid) 
     { 
      try 
      { 
       if (tbButton.Equals("questsend")) 
       {   
        return View("Verify", viewModel); 
       } 
       else if (tbButton.Equals("questupload")) 
       { 
        return View(viewModel); 
       } 
       else 
       { 
        dropdownPopulate(viewModel); 
        return View("DefaultForm", viewModel); 
       } 
      } 
      catch 
      { 
       dropdownPopulate(viewModel); 
       return View(viewModel); 
      } 
     } 
     else 
     { 
      dropdownPopulate(viewModel); 
      return View(viewModel); 
     } 
    } 

を確認し、コントローラー:

public ActionResult Verify(QuestionViewModel viewModel) 
    { 
     return View(viewModel); 
    } 

    [HttpPost] 
    public ActionResult Verify(QuestionViewModel viewModel, string tbButton) 
    { 
     #region button verarbeitung 

     if (tbButton.Equals("questkorr")) 
      { 
       return RedirectToAction("DefaultForm", viewModel); 
      } 
      else if (tbButton.Equals("questsend")) 
      { 

       return RedirectToAction("SomeOtherPage"); 
      } 

     #endregion 

     return View(viewModel); 
    } 

ものはビューの開始と終了です: Defaultform

@using (Html.BeginForm("DefaultForm", "QuestionForm", FormMethod.Post, new { id = "questionform" })) 
     { 
<button class="btn btn-default btnusz" type="submit" name="tbButton" value="questsend">Senden</button> 

を確認します。

@using (Html.BeginForm("Verify", "QuestionForm", FormMethod.Post, new { id = "verifyform" })) 
     { 
<button class="btn btn-default btnusz" type="submit" name="tbButton" value="questkorr">Korrigieren</button> 
<button class="btn btn-default btnusz" type="submit" name="tbButton" value="questsend">Senden</button> 

私は疑問に多くのコードや情報を追加する必要がある場合は、私に教えてください。

答えて

0

モデルのインスタンスを作成して情報を入力し、そのモデルを使用して詳細を表示する追加の方法をコントローラに配置することができます。修正する必要がある場合は、そのモデルを渡す。何かを修正する必要がない場合は、モデルを使用してデータを永続化します。

それとももっと簡単な方法、あなたはJavaScriptを使用して試みることができる:

<a href="##" onClick="history.go(-1); return false;">Go back</a> 
+1

history.go(-1)に問題があること:ユーザーdoesntのは、入力のいずれかを記入した場合、その後の検証キックインチそこで、彼はこの入力を補充し、検証ページに進みます。それから正しいものに戻ってください。前に忘れてしまったこの入力が再び強調表示されます。記入して強調表示する。 – Shaorandra

+0

@Shaorandraしかし、彼が忘れた入力がある場合、彼は次のページに進むことができないはずですか?そして、入力が記入されている場合、検証メッセージは消えてしまうでしょう。 – Vahx

+0

彼はこの入力を記入するまで続けることができません。しかし、フォームに戻ってくると、検証によって作られたCSSの変更はまだ有効です(歴史的には1 setp)。サーバー側の要件([必須] ...)に基づいて変更時検証を行うことはできますか? – Shaorandra

関連する問題