<分区>
我将创建一个表单,用户必须在其中输入日期和时间。在数据库中,我会将日期和时间合并到一列中。我如何使用 ASP.NET MVC 和 C# 执行此操作?
信息:您可以在下面找到我的 HTML 代码
<form action="~/admin/NieuweCreateActiviteit" method="post" enctype="multipart/form-data">
<div class="form-group">
<label class="control-label col-md-2 required" for="NieuwActiviteit_StartPeriode">Aanvang datum</label>
<div class="col-md-6">
<input id="NieuwActiviteit_StartPeriode" name="NieuwActiviteit.StartPeriode" type="date" class="form-control text-box single-line col-md-6" required data-val="true" data-val-date="Dit veld moet een geldige datum bevatten." data-val-required="Dit veld is vereist." value="">
@Html.ValidationMessageFor(model => model.NieuwActiviteit.StartPeriode, "", new { @class = "text-danger" })
</div>
<div class="col-md-4">
<div class="form-group" style="margin-bottom: 0">
<label class="control-label col-md-6 required">Uur</label>
<div class="col-md-6">
<input type="time" class="form-control" required data-val-required="Dit veld is vereist." name="BeginUur" />
</div>
</div>
</div>
</div>
</form>
在 Controller 中接收日期(属性名称NieuwActiviteit.StartPeriode
1)和时间(属性名称 BeginUur
) 作为单独的属性。
所以我的解决方案是将时间分成冒号 (:
) 并使用方法 AddHours
和 AddMinutes
为属性 StartPeriode
添加时间。
但它不起作用。如果我在下面代码中标记的行上放置一个断点,变量 tempstartuur
和 tempstartmin
是可以的,但是如果我进入下一行,小时数不会添加到属性 StartPeriode
。
这是我的 Controller 的代码
[HttpPost]
public ActionResult NieuweCreateActiviteit(CreateActiviteitViewModel a)
{
int tempstartuur, tempstartmin;
if (int.TryParse(a.BeginUur.Split(':')[0], out tempstartuur) && int.TryParse(a.BeginUur.Split(':')[1], out tempstartmin))
{
a.NieuwActiviteit.StartPeriode.AddHours(tempstartuur); // breakpoint
a.NieuwActiviteit.StartPeriode.AddMinutes(tempstartmin);
}
else
{
AddErrors(new IdentityResult("Start uur is geen uur"));
return View(a);
}
// insert in database
return View();
}
信息: View 模型
public class CreateActiviteitViewModel
{
public Activiteit NieuwActiviteit { get; set; }
public HttpPostedFileBase UploadedFoto { get; set; }
public string Submit { get; set; }
[AllowHtml]
public string Beschrijving { get; set; }
public string BeginUur { get; set; }
public string EindUur { get; set; }
}
public class Activiteit
{
[Key]
public int ID { get; set; }
public string Titel { get; set; }
public string Omschrijving { get; set; }
public virtual ApplicationUser Gebuiker { get; set; }
public string GebuikerID { get; set; }
public DateTime StartPeriode { get; set; }
public DateTime? EindPeriode { get; set; }
public bool Verwijderd { get; set; }
public bool Opgelost { get; set; }
public virtual ICollection<ApplicationUser> Aanwezigen { get; set; }
public string Foto { get; set; }
public virtual Straat Straat { get; set; }
public int StraatID { get; set; }
public string Huisnummer { get; set; }
public string Organisator { get; set; }
}
我的代码有什么问题?
提前致谢
1 抱歉,我正在用荷兰语编程...如果您对翻译有疑问,可以在评论中问我。