您好我在我的MVC项目中使用数据库第一种方法。我有一个操作,当用户点击Accept条款时,我调用存储过程。
这里,只要我调用此存储过程,就会在我的表中存储当前日期并将 termsaccepted 字段从false变为true。它工作正常。我有条件,只有当用户接受的条款,他们可以重定向到默认页面。但即使在调用存储过程和更新日期之后,它也不会重定向到默认页面。
我观察到的是,如果我关闭并打开我的解决方案,那么它会将最新值存储在数据库中,然后重定向到我需要的页面。
那么在不重新启动Visual Studio的情况下,如何在数据库中更新值后立即重定向到页面?
我的行动:
public ActionResult Termspage()
{
TermsEntities updateterms = new TermsEntities();
var ID = Session["userID"];
if (ID != null)
{
updateterms.usp_UpdateUserTerms(Convert.ToInt32(ID), true);
updateterms.SaveChanges();
}
return View();
}
我的观点:
<body>
<div>
@using (Html.BeginForm("DefaultPage", "Home", FormMethod.Post, new { id = "frmIndex" }))
{
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
<input type="submit" value="Accept Terms & Condition" />
</td>
</tr>
</table>
}
</div>
</body>
即使在我的数据库中更新了详细信息,它也不会重定向到 Defaultpage 操作。但是当我重新打开我的解决方案时,它会重定向到Defaultpage。
更新:
我尝试使用redirecttoAction但是当我使用它时,我得到此网页有重定向循环错误
答案 0 :(得分:2)
RedirectToAction
方法
public ActionResult Termspage()
{
TermsEntities updateterms = new TermsEntities();
var ID = Session["userID"];
if (ID != null)
{
updateterms.usp_UpdateUserTerms(Convert.ToInt32(ID), true);
updateterms.SaveChanges();
return RedirectToAction("Detail", new {id=ID})
}
}
然后
public ActionResult Detail(int id)
{
// get record
return View();
}