【问题标题】:How can I store the current time to my database when create button clicked?单击创建按钮时,如何将当前时间存储到我的数据库中?
【发布时间】:2016-12-29 19:34:20
【问题描述】:

我正在 MVC 中进行 CRUD 操作。我也在使用实体框架。我只向用户显示表的 12 个值(还有 currenttime(createDateTime) 值,用户在创建之前无法看到)。当我单击创建按钮时。 它应该保存我在编辑器字段中写入的所有值,并将当前时间保存到数据库。

创建视图

<div class="form-group">
   @Html.LabelFor(model => model.languageID, htmlAttributes: new { @class = "control-label col-md-2" })
   <div class="col-md-10"> 
    @Html.EditorFor(model => model.languageID, new { htmlAttributes = new { @class = "form-control" } }) 
    @Html.ValidationMessageFor(model => model.languageID, "", new { @class = "text-danger" }) 
   </div> 
</div>

控制器

[HttpPost][ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "pkID,projectID,languageID,projectCompany,projectTitle,projectLink,projectText,projectImageURL,isPassive,createDateTime,createUsername,updateDateTime,updateUsername")] cusContentProjects cusContentProjects)
{
    if (ModelState.IsValid)
    {
        db.cusContentProjects.Add(cusContentProjects);
        db.SaveChanges();
        return RedirectToAction("Index");
    }

    return View(cusContentProjects);
}

【问题讨论】:

    标签: c# html entity-framework model-view-controller crud


    【解决方案1】:

    使用 UTC 值作为日期,然后根据 UI 要求解析为本地。 将日期时间以 UTC 格式存储在 db 中始终可以避免日期时间计算错误和夏令时期间的时间更改。

    日期时间.UtcNow

    【讨论】:

    • 它最好与 UTCNow 一起使用。谢谢。
    【解决方案2】:

    你可以这样做:

        cusContentProjects.createDateTime = DateTime.Now; //Server current datetime
        db.cusContentProjects.Add(cusContentProjects);
        db.SaveChanges();
        return RedirectToAction("Index");
    

    【讨论】:

    • 我应该删除这些值吗? [Bind(Include = "pkID,projectID,languageID,projectCompany,projectTitle,proje‌​ctLink,projectText,p‌​rojectImageURL,isPass‌​sive,updat‌​eDateTime,updateUser‌​name")] cusContentProjects cusContentProjects)
    • @MertKaya 不需要。
    【解决方案3】:

    您可以使用 DateTime.Now 获取当前日期

    【讨论】:

      【解决方案4】:

      您应该从服务器获取 dateTime,因为从用户的 PC 获取它可能不是正确的日期。

      你可以这样做:

      using System; //lib that allow you to use DateTime
      ...
      
      [HttpPost][ValidateAntiForgeryToken]
      public ActionResult Create([Bind(Include = "pkID,projectID,languageID,projectCompany,projectTitle,projectLink,projectText,projectImageURL,isPassive,createDateTime,createUsername,updateDateTime,updateUsername")] cusContentProjects cusContentProjects)
      {
          if (ModelState.IsValid)
          {
              db.cusContentProjects.Add(cusContentProjects);
              var date = DateTime.now; //save it wherever you need
              db.SaveChanges();
              return RedirectToAction("Index");
          }
      
          return View(cusContentProjects);
      }
      

      请记住,您保存 DateTime 的变量也需要输入 DateTime。

      希望对您有所帮助。 祝你好运!

      【讨论】:

        猜你喜欢
        • 2018-11-08
        • 2021-06-19
        • 2022-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多