MVC : la Liaison de valeur de type datetime ("bootstrap" datetime picker) à partir de la vue de modèle
Je veux lier la date de valeur de temps que je reçois pour mon modèle, pour que je puisse utiliser pour l'enregistrer dans la base de données.
Remarque: Actuellement, je suis en utilisant bootstrap datetime picker pour obtenir la date de la valeur temps.
Disons que j'ai un ViewModel appelé foo
public class fooVM
{
public string Name {get; set; }
[DataType(DataType.DateTime)]
public DateTime DateEntered {get; set}
}
basé sur ce que j'ai vue
@model User.Model.fooVM
@{
ViewBag.Title = "Create";
Layout = "~/Views/shared/_BootstrapLayout.basic.cshtml";
}
@section Datetime
{
<link href="@Url.Content("~/Content/bootstrap.css")" rel="stylesheet" type="text/css"/>
<link href="@Url.Content("~/Content/bootstrap-datetimepicker.min.css")" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-2.0.2.min.js")"></script>
<script type="text/javascript" src="~/Scripts/bootstrap.min.js"></script>
<script type="text/javascript" src="~/Scripts/bootstrap-datetimepicker.min.js"></script>
}
@using (Html.BeginForm("Register", "Account", FormMethod.Post))
{
<div class="input-block-level">@Html.TextBoxFor(model => model.Name</div>
<div id="datetimepicker2" class="input-append date">
<input data-format="dd/MM/yyyy HH:mm:ss PP" type="text"/>
<span class="add-on">
<i data-time-icon="icon-time" data-date-icon="icon-calendar"></i>
</span>
</div>
<script type="text/javascript">
$(document).ready(function() {
$('#datetimepicker2').datetimepicker({
format: 'dd/MM/yyyy hh:mm:ss',
language: 'en',
pick12HourFormat: true
});
});
</script>
</div>
}
<div class="form-actions">
<button type="submit" class="btn btn-primary">Save changes</button>
</div>
</fieldset>
Maintenant, ce serait me donner la date time picker, point de vue, mais la valeur ne serait pas lier à mon DateEntered
valeur dans le modèle.
Si je voulais faire obtenir la valeur d'affichage pour la date et économisez il peut être dans la base de données,
comment aurais-je le faire? de sorte que si j'ai exécuté commande suivante dans mon contrôleur, il serait de travailler.
[HttpPost]
public ActionResult Create(fooVM user)
{
if (ModelState.IsValid) {
_db.Users.Add(user);
_db.SaveChanges();
}
PS: Cela pourrait être possible de la valeur dans la base de données
Nom : ABC
DateEntered : 6/14/2013 9:34:23 AM
OriginalL'auteur Cybercop | 2013-06-25
Vous devez vous connecter pour publier un commentaire.
Si vous définissez l'attribut Name sur vos commentaires, je crois MVC correspond à celui de la propriété sur votre modèle avec le même nom.
Alternativement, vous pouvez utiliser
HtmlTextBoxFor
d'accompagnateur et de l'utilisation de lahtmlAttributes
paramètredata-format
. Quelque chose comme@Html.TextBoxFor(model => model.DateEntered, new { data_format = 'dd/MM/yyyy HH:mm:ss PP'});
Ici est la MSDN pour cette surcharge.
OriginalL'auteur cadrell0
Vous avez besoin pour donner à la balise d'entrée un nom qui correspond à une propriété dans votre modèle, comme ceci:
OriginalL'auteur Lee Bailey
Tous vous avez besoin à faire est de donner le nom de" attribut de l'amorçage de la date sélectionner l'entrée qui correspond à la propriété désirée dans votre modèle de vue.
OriginalL'auteur Andy Brudtkuhl