为什么我不清楚? 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 :(得分:1)
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>