Comment utiliser un format de chaîne ShortDate avec Html.TextBoxFor

asp.net asp.net-mvc asp.net-mvc-2 c# entity-framework

Question

En utilisant Entity Framework avec MVC2, j’ai une série de zones de texte de date, que je veux afficher les données du modèle dans un format de date court, mais je dois utiliser Html.TextBoxFor pour que le code de mise à jour fonctionne (après avoir essayé .Textbox les données ne sont jamais enregistrées dans le modèle).

<%: Html.TextBoxFor(model => model.Item.Date, String.Format("{0:d}", Model.Item.Date))%>

J'ai essayé de manipuler l'expression de format de chaîne et ajouté des métadonnées à une classe partielle mappée à la classe de modèle Entity Framework. Néanmoins, je reçois toujours le texte suivant qui remplit mes zones de texte lors du rendu du formulaire:

01/01/2011 00:00:00 

plutôt que

01/01/2011

Réponse acceptée

<%: Html.EditorFor(model => model.Item.Date) %>

Et sur votre modèle de vue :

[DataType(DataType.Time)]  
[DisplayFormatAttribute(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
public DateTime Date { get; set; }

METTRE À JOUR:

Exemple complet:

Modèle:

public class MyModel
{
    public Item Item { get; set; }
}

public class Item
{
    [DataType(DataType.Time)]
    [DisplayFormatAttribute(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
    public DateTime Date { get; set; }
}

Manette:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View(new MyModel
        {
            Item = new Item { Date = DateTime.Now }
        });
    }
}

Vue:

<%: Html.EditorFor(model => model.Item.Date) %>


Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow