Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用剑道UI和MVC更新网格和数据库中的行_C#_Asp.net Mvc_Database_Kendo Grid_Kendo Asp.net Mvc - Fatal编程技术网

C# 使用剑道UI和MVC更新网格和数据库中的行

C# 使用剑道UI和MVC更新网格和数据库中的行,c#,asp.net-mvc,database,kendo-grid,kendo-asp.net-mvc,C#,Asp.net Mvc,Database,Kendo Grid,Kendo Asp.net Mvc,我正在使用一个带有Visual Studio 2012和Kendo UI 2014的MVC项目。 我可以更新网格中的一行,它会发生变化,但当我重新加载页面时,该行会显示原始信息。我也想在数据库中更新它 这是我的代码: .cshtml(视图): <div class="grid"> @(Html.Kendo().Grid<UsersModel>() .Name("grid") .Editable(editable => editable.Mode(Gr

我正在使用一个带有Visual Studio 2012和Kendo UI 2014的MVC项目。

可以更新网格中的一行,它会发生变化,但当我重新加载页面时,该行会显示原始信息。我也想在数据库中更新它

这是我的代码:

.cshtml(视图):

<div class="grid">
@(Html.Kendo().Grid<UsersModel>()
    .Name("grid")
    .Editable(editable => editable.Mode(GridEditMode.InCell))
    .DataSource(dataSource => dataSource
        .Ajax()
        .Model(r => r.Id(p => p.Id))
        .Read(r => r.Action("GetAccounts", "ManagerAccounts", new { area = "Admin" }))
        .Destroy("Delete", "ManagerAccounts")
        .Update("Update", "ManagerAccounts")
        .Create("Create", "ManagerAccounts")
    )
    .Columns(columns =>
    {
        columns.Bound(c => c.Id);
        columns.Bound(c => c.UserName);
        columns.Bound(c => c.Email);
        columns.Command(command => command.Destroy()).Width(120);
    })
    .Pageable(pageable => pageable
        .Refresh(true)
        .PageSizes(true)
        .ButtonCount(5)
    )
    .Sortable()
    .Navigatable()
    .ToolBar(toolbar => {
        toolbar.Create();
        toolbar.Save();        
    })
)
</div>
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Update([DataSourceRequest] DataSourceRequest request, IEnumerable<UsersModel> users)
{
    if (users != null && ModelState.IsValid)
    {
        foreach (var user in users)
        {
            AccountRepository.UpdateUsuarios(user);
        }
    }

    return Json(ModelState.ToDataSourceResult());
}
public void UpdateUsuarios(UsersModel user)
{
    var usuario = this.Context.Users.Where(l => l.Id == user.Id).FirstOrDefault();

    if (usuario != null)
    {
        usuario.Id = user.Id;
        usuario.UserName = user.UserName;
        usuario.Email = user.Email;
        this.Context.SaveChanges();
    }
}

我尝试了
this.Context.SaveChanges()但它不起作用。

您能试试这个代码吗:

if (usuario != null)
{
    usuario.Id = user.Id;
    usuario.UserName = user.UserName;
    usuario.Email = user.Email;
    this.Context.Entry(usuario).State = System.Data.Entity.EntityState.Modified;
    this.Context.SaveChanges();  // Or you may try await this.Context.SaveChangesAsync();
}

数据库中的值是否更新?更新方法中的
是什么。您还可以使用实体框架或链接。