【问题标题】:Updating list of models on the database ASP.NET MVC 5更新数据库 ASP.NET MVC 5 上的模型列表
【发布时间】:2014-04-10 05:54:52
【问题描述】:

我有一个显示在视图上的模型列表。假设它们是任务列表。该列表有一个检查按钮,可以在其中检查任务是否已完成。我希望它们立即在数据库中更新。我该怎么做?

这是我的控制器的样子:

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();

    }

【问题讨论】:

    标签: sql-server asp.net-mvc linq razor asp.net-mvc-5


    【解决方案1】:

    可以检查任务是否完成的按钮。我希望它们在数据库中更新 一次。我该怎么做?

    你看错地方了。不是通过“普通”MVC 而是通过使用 Ajax。

    用户按下复选框,对不返回 HTML 页面但突出 200 - OK 的 Api 方法(REST 方法)进行回调。它获取 ID 作为参数并更新数据库中的任务。就在那儿,当值发生变化时。

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

    对于我们中的一些人来说,这是你必须为不完全甜美的苹果而学习一些 javascript / JQuery 以在浏览器中运行的时刻。上周去过那里,没那么难;)

    【讨论】:

    • 我在想 AJAX 可以派上用场,但我想我可能会使用循环一用户单击提交按钮在服务器中编写。我将尝试使用 Ajax,我希望它可以工作。 :)
    • 问题是这意味着按下提交按钮 - 这与您的要求相反(当值更改时立即)。当你学习 ajax 时,也要学习 jquery 部分——虽然很难学,但非常好用。我开始在网站上做越来越多的小处理。
    • 感谢朋友的建议。我第一次将 Ajax 与 MVC 一起使用,哈哈 :)
    • 上周我遇到了同样的问题 - 我不得不说我不喜欢 javascript。但是非常好用。
    【解决方案2】:

    Entity Framework 默认不支持批处理。这样做的可能性很小。看到这条评论:

    https://stackoverflow.com/a/13024320/1164761

    【讨论】:

    • 这与批处理完全无关,甚至都不好笑。
    • 嘿...可能没有正确理解这个问题。
    猜你喜欢
    • 2014-11-22
    • 2020-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-15
    相关资源
    最近更新 更多