Я создам форму, в которой пользователи должны ввести дату и время. В базе данных я объединю дату и время в одном столбце. Как я могу сделать это с помощью ASP.NET MVC и C#?Как я могу использовать AddHours и AddMinutes для добавления времени в переменной DateTime?
Информация: Ниже вы могли бы найти мой 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>
В контроллере получить дата (имя свойства NieuwActiviteit.StartPeriode
) и (имя свойства времени BeginUur
) как отделенные объекты.
Так что мое решение было разделить время на толстой кишке (:
) и использовать methodes AddHours
и AddMinutes
для добавления времени для свойства StartPeriode
.
Но это не работает. Если я помещаю точку останова на отмеченную строку в коде ниже, переменные tempstartuur
и tempstartmin
являются oké, но если я перехожу к следующей строке, часы не будут добавлены в свойство StartPeriode
.
Вот код моего контроллера
[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();
}
Info: модель вид
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; }
}
Что случилось с моим кодом?
Заранее спасибо
К сожалению, но я программирование на голландском языке ... Если у вас есть проблемы с переводом вы могли бы спросить меня в комментариях.