Asp.net mvc 数据库更改后未更新模型

Asp.net mvc 数据库更改后未更新模型,asp.net-mvc,Asp.net Mvc,我的问题是,我的模型在数据库更改后似乎没有更新。我有一个列表,每个列表都有批准或拒绝按钮 using (Html.BeginForm("LeaveProcess", "Admin", FormMethod.Post, new { @class = "form-horizontal" })) { <input type="text" name="LvAppId" hidden value="@item.LvAppId"> <li><button typ

我的问题是,我的模型在数据库更改后似乎没有更新。我有一个列表,每个列表都有批准或拒绝按钮

using (Html.BeginForm("LeaveProcess", "Admin", FormMethod.Post, new { @class = "form-horizontal" }))
{
    <input type="text" name="LvAppId" hidden value="@item.LvAppId">
    <li><button type="submit" class="btn btn-link" name="AppVal" value=true data-confirm="are u sure?" >Approve</button></li>
    <li><button type="submit" class="btn btn-link" name="AppVal" value=false >Reject</button></li>
}
public static void UpdateStatusFromAdmin( string LvAppId, bool AppVal)
{
    if (AppVal == true)
    {
        db.Database.ExecuteSqlCommand("UPDATE LeaveApps SET Status='Approved' WHERE LvAppId={0}", LvAppId);
    }
    else
    {
        db.Database.ExecuteSqlCommand("UPDATE LeaveApps SET Status='Rejected' WHERE LvAppId={0}", LvAppId);
    }
}
并将数据库列更新为“已批准”或“拒绝”


数据库已更新(使用ssms进行了检查),但当我重新加载页面时,该值仍未更新,我必须在visual studio中重新启动调试以使其更新,我应该怎么做?谢谢

除了将您的值写入数据库之外,您什么也不做

创建模型的对象并调用视图

var model = new YourModel
{
    LvAppId = lvAppId, 
    AppVal = appVal
};

return View("Index", model);

否则,如果您确信查询是正确的,并且您可以看到正在使用ssms对后端进行的更改,但这些更改没有反映在您的应用程序中,则必须调用数据库以获取最新的值。。我认为这是一个很好的迹象,表明上下文存在问题

从代码来看,您似乎没有正确处理上下文

将数据访问包装在using语句中,如下所示:

 using(var db = new DatabaseContext())
 {
   // perform data access here 
 }
将自动处理它


如果这不能解决您的问题,那么我将关注您的查询

您如何管理数据库上下文的生命周期?您是否在这样做:使用(var db=new-DatabaseContext()){//perform data access here}请参见:嗯,我是这样使用它的:private-static-UserContext db=new-UserContext();然后像这样调用它:var Employee=db.Employee.SqlQuery(strquery,Convert.ToInt32(EmpId)).FirstOrDefault();这不对吗?这与我的案例有什么关系?如果您确信查询是正确的,并且您可以看到使用ssms对后端进行的更改,但这些更改没有反映在您的应用程序中。。我认为这是一个很好的迹象,表明上下文存在问题。看起来您没有像前面的注释那样正确地将数据访问包装到using语句中,并且链接将自动处理上下文。。。。如果这不能解决您的问题,那么我会关注您的查询如果数据库更新代码正在工作,并且
Index.cshtml
视图没有显示正确的结果,那么是
Index()
方法中的代码或视图中的代码不正确-您没有显示任何相关代码。@d.Mac wow现在可以了,看起来我在使用上下文之前和之后都用错了,就像你说的,现在它可以工作了,谢谢!
 using(var db = new DatabaseContext())
 {
   // perform data access here 
 }