MVC重定向无法正常工作

时间:2013-10-17 16:07:48

标签: c# asp.net-mvc database razor

您好我在我的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但是当我使用它时,我得到此网页有重定向循环错误

1 个答案:

答案 0 :(得分: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();
}