2014-03-07 41 views
0

我有一个显示在视图上的模型列表。说他们是任务列表。该列表中有一个检查按钮,可以检查任务是否完成。我希望他们一次更新数据库。我会怎么做?更新数据库模型列表ASP.NET MVC 5

这里是我的控制器看起来像:

public async Task<ActionResult> TaskManager(Tasks model, string id) 
    { 
     var user = await UserManager.FindByIdAsync(id); 
     var list = from task in context.Tasks.Where(t=> t.isAssigned == false) 
        select task; 

     foreach(var t in task) 
     { 
      t.isAssigned =(bool) // FROM EACH LIST ITEM IN THE VIEW ; 
     } 

     await context.SaveChangesAsync(); 
     return View(); 

    } 

回答

1

按钮,其中一个可以检查任务完成。我想让他们在 上更新一次数据库。我会怎么做?

你看错了地方。这不是通过做“正常”的MVC,而是通过使用Ajax。

用户按下复选框后,会对不会返回HTML页面但超过200的Api方法(REST方法)进行回调 - 确定。它获取ID作为参数并更新数据库中的任务。就在那里,价值改变时立即。

基本上,如果您想对复选框更改做出反应,您必须这样做 - 并且效率低下且刷新整个页面的速度很慢。这就是为什么微软在很多年前发明了Ajax(之前有人甚至提出了这个词)。它得到很好的支持。

这是你必须为我们中的某些人写出不完全甜蜜的苹果,并学习一些JavaScript/JQuery在浏览器中运行的时刻。上个星期,这不是很难;)

+0

非常感谢您的评论。 :) –

+0

我在想AJAX可以派上用场,但我想我可能会在服务器上使用循环写一个用户点击提交按钮。我会尝试使用Ajax,我希望它能工作。 :) –

+1

问题是,这意味着按下提交按钮 - 这是违背你所要求的(当值改变时立即)。当你学习Ajax时,还要学习jquery部分 - 很难进入,但非常方便。我开始在网站上做更多更小的处理。 – TomTom