2016-07-06 16 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)的問題是:如果用戶犯規填寫一個輸入,則驗證踢英寸所以他填寫了這個輸入並繼續到驗證頁面。然後回到正確的。並且他以前忘記的這個輸入被再次突出顯示。填寫,但也突出。 – Shaorandra

+0

@Shaorandra但是如果有他忘記的輸入,他不應該繼續到下一頁?如果填寫了輸入內容,驗證消息應該消失 – Vahx

+0

直到他填寫完此輸入後,他才能繼續。但是當返回到表單時,驗證所做的css更改仍然是活動的(在歷史記錄中回退1個)。我可以根據服務器端要求進行on-change-validation([Reqired] ...)嗎? – Shaorandra

相關問題