0

嗨,我在我的 MVC 项目中使用数据库优先方法。当用户单击接受条款时,我有一个操作正在调用存储过程。

在这里,只要我调用此存储过程,它就会在我的表中存储当前日期并使termaccepted字段从 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,但是当我使用它时,我得到这个网页有重定向循环错误

4

1 回答 1

2

PostRedirectGet在 MVC 中 尝试使用方法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();
}
于 2013-10-17T16:11:35.493 回答