通过控制器更改对象的值

时间:2016-01-20 21:24:37

标签: c# asp.net-mvc

我的图片有一个名为hits的int,用于计算某人点击图像的次数。单击图像时,将转到/详细信息/ [图像ID]。我的详细信息控制器有以下代码:

public ActionResult Details(int? id)
{
    if (id == null)
    {
        return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
    }
    CustomButton customButton = db.CustomButtons.Find(id);
    if (customButton == null)
    {
        return HttpNotFound();
    }
    db.CustomButtons.Find(id).Hits += 1;
    return View(customButton);
}

无论点击次数多少次,图片的点击次数仍为1或2。

2 个答案:

答案 0 :(得分:0)

那是因为你没有在任何地方存储命中的运行次数。每次页面返回控制器时.Hits为0,因为每次页面重新加载时都会重新初始化CustomButtons,然后.Hits从0开始。

您应该在模型中存储当前的命中数,然后使用视图发送模型。在视图中,您可以从模型中获取当前的命中数,并将其存储回.Hits。然后,当发送到控制器时,增加Hits并将其存储回Model中,并使用View返回新模型。

答案 1 :(得分:0)

我想通了,我不得不添加db.SaveChanges();增加一个点击后到下一行。