2013-02-22 29 views
0

爲什麼我沒有清除表格? ModelState.Clear();不工作!以更新的形式再次發送數據。嘗試了許多不同的解決方案,但都是徒勞的,所以希望找到解決這個問題的辦法。請幫幫我! 「控制器」ModelState.Clear();不管用?

public ActionResult Yandex() 
      { 
       ViewData["sucsess"]=" "; 
       return View(); 
      } 
      [HttpPost] 
      public ActionResult Yandex(LoginModel model) 
      { 

       if (model.option1) 
       { 
        md.Modules_Update(1,1); 
        ViewData["sucsess"] = "• Дані успішно збережені!"; 
       } 
       else 
       { 
        md.Modules_Update(1, 0); 
        ViewData["sucsess"] = "• Дані успішно збережені!"; 
       } 
       ModelState.Clear(); 
       return View(); 
      } 

「查看」

@using (Html.BeginForm()) 
    { 
     Settings exit = new Settings(); 
     <span class="property">Модуль включений: </span> 
     <span class="property">Так</span> 
     if (exit.Modules(1).ToString() == "1") 
     { 
     @Html.RadioButtonFor(m => m.option1, true, new { @checked = "checked", id = "1", @class="radio" }) 
     } 
     else 
     { 
     @Html.RadioButtonFor(m => m.option1, true, new { id = "1", @class="radio" }) 
     } 
     <span class="property">Ні</span> 
     if (exit.Modules(1).ToString() == "0") 
     { 
     @Html.RadioButtonFor(m => m.option1, false, new { @checked = "checked", id = "0", @class="radio" }) 
     } 
     else 
     { 
     @Html.RadioButtonFor(m => m.option1, false, new { id = "0", @class="radio" }) 
     } 
     <input type="submit" value="Зберегти" class="save" /> 
    } 
    <span class="property_col">@ViewData["sucsess"]</span> 

回答

0

值仍然存在於POST請求。要做到這一點,正確的方法是重定向到您的GET操作:

[HttpPost] 
public ActionResult Yandex(LoginModel model) 
{ 
    if (model.option1) 
    { 
     md.Modules_Update(1,1); 
     TempData["sucsess"] = "• Дані успішно збережені!"; 
    } 
    else 
    { 
     md.Modules_Update(1, 0); 
     TempData["sucsess"] = "• Дані успішно збережені!"; 
    } 

    return RedirectToAction("Yandex"); 
} 

還要注意,我用的TempData重定向期間運送郵件。所以你可能需要適應你的觀點:

<span class="property_col">@TempData["sucsess"]</span>