web-dev-qa-db-fra.com

MVC Razor - Valeur par défaut comme date du jour pour le type de zone de texte date

J'ai un Textbox avec le type date. J'essaie de définir la valeur par défaut de textbox à la date du jour.

@Html.TextBoxFor(x => x.Date, new { @id = "Date", @type = "date", 
                                    @value = DateTime.Now.ToShortDateString() })

La ligne ci-dessus ne définit pas la valeur par défaut. Comment définir la valeur par défaut comme date du jour?

12
Anup

Comme Stephen Muecke l'a dit, vous devez définir la valeur de la propriété sur le modèle.

// in controller method that returns the view.
MyModel model = new MyModel();
model.Date = DateTime.Today;

return View(model);

Et votre rasoir serait:

@Html.TextBoxFor(x => x.Date, "{0:yyyy-MM-dd}", new { @class = "form-control", @type = "date"})

Notez que les propriétés id et name doivent être automatiquement attribuées au nom de la propriété lors de l'utilisation d'une méthode For, telle que @Html.TextBoxFor(), de sorte que vous n'avez pas besoin de définir explicitement l'attribut id.

26
ps2goat

C'est un meilleur moyen de gérer en vue 

@Html.TextBoxFor(x=> x.Date, new { @Value = @DateTime.Now.ToShortDateString() })
26
renjith

Une autre solution:

 @Html.TextBoxFor(model=>model.CreatedOn, new{@value= System.DateTime.Now})

Cela fonctionne pour moi, bien sûr que cela fonctionnera pour vous.

0
user6243946
 $(document).ready(function () {
        var dateNewFormat, onlyDate, today = new Date();

        dateNewFormat = today.getFullYear() + '-';
        if (today.getMonth().length == 2) {

            dateNewFormat += (today.getMonth() + 1);
        }
        else {
            dateNewFormat += '0' + (today.getMonth() + 1);
        }

        onlyDate = today.getDate();
        if (onlyDate.toString().length == 2) {

            dateNewFormat += "-" + onlyDate;
        }
        else {
            dateNewFormat += '-0' + onlyDate;
        }

        $('#mydate').val(dateNewFormat);
    });
0
Radha Anil K