ASP.Net MVC 4 - 手动向数据库添加值

时间:2014-08-01 10:28:35

标签: c# asp.net forms asp.net-mvc-4

我是ASP和MVC的新手,我正在创建一个基于教程的基本应用程序。

该应用程序是一个有三个不同阶段的表单: -

  • 阶段1是请求基本详细信息的表单
  • 阶段2是家庭信息的表格
  • 第3阶段是一个包含其他一些细节的表格

我的应用包含一个数据库,其中包含不同时间戳的字段: -

  • phase1Timestamp
  • phase2Timestamp
  • phase3Timestamp

当用户完成表单的每个阶段时,我想将值推送到表示这些时间戳的数据库。

我无法理解的是如何手动执行此操作。

让我告诉你一个我的表格的例子:

@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()
    @Html.ValidationSummary(true)
    @Html.EditorFor(model => model.customerFirstname)
    @Html.EditorFor(model => model.customerSurname)
}

然后,在我的控制器中,我只是有一个方法可以自动将这些数据从表单推送到数据库:

[HttpPost]
[ValidateAntiForgeryToken]

public ActionResult Summary(Customer customer, int? someJargValue)
{
    try
    {  
        // At this point push the data to the database
        if (ModelState.IsValid)
        {
            db.Customers.Add(customer);
            db.SaveChanges();

            // At this point - what if I want to add additional data to the database
            // which is not present in the form? Is there a db.Customers.setfield or something?

            return RedirectToAction("DatabaseEntries", customer);
        }
    }
    catch (DataException dex)
    {
        ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator.\nError details: " + dex);
        System.Diagnostics.Debug.WriteLine("Error occured when attempting to save changes: " + dex);
    }
    return View(customer);
}

请参阅上面的注释,上面的代码片段中的return语句。我想手动将一些数据添加到表单中不存在的数据库字段之一。

谢谢!

0 个答案:

没有答案