2016-02-29 10 views
11

मुझे अपने एमवीसी 6 प्रोजेक्ट में टैगेलपर तत्व के साथ "एएसपी-प्रारूप" टैग का उपयोग कर समस्या का सामना करना पड़ रहा है।"एएसपी-प्रारूप" टैग सहायकों पर लागू नहीं है

विचार एक तारीख इनपुट तत्व इस तरह से स्वरूपित करने के लिए है:

public DateTime StartDate {get; set; } 

एक अजीब कारण से, इस:

<input asp-for="StartDate" asp-format="{0:dd/MM/yyyy}" /> 

यह "StartDate" संपत्ति अपने मॉडल में है, इस तरह से घोषित तत्व कभी स्वरूपित नहीं होता है, और इसे हमेशा प्रस्तुत किया जाता है:

---> 02/29/2016 00:00:00 

इसलिए मैंने एक व्यूमोडेल क्लास बनाया और पूरे व्यक्ति मॉडल को पकड़ने के लिए एक संपत्ति को परिभाषित किया।

public class PersonViewModel 
{ 
    public Person Johndoe {get; set; } 
} 

और इस वर्ग का उपयोग दृश्य में, प्रारूपण कार्य करता है।

<input asp-for="Johndoe.StartDate" asp-format="{0:dd/MM/yyyy}" /> 

---> 29/02/2016 
+0

क्या आपको कभी भी एक प्रस्ताव मिला टैग सहायकों का उपयोग कर इस के लिए आयन? मैंने बस इस सवाल की शुरुआत में आपके पास ऐसा करने की कोशिश की और यह मेरे लिए काम किया। – akousmata

उत्तर

4

आप

[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)] 

    public DateTime StartDate {get; set; } 

की तरह है और अपने मॉडल को दृश्य में अपने आप में प्रारूप प्रदान कर सकते हैं

बस की तरह
@Html.EditorFor(model=>model.StartTime) 

2) आप भी मॉडल कक्षा में दिनांक स्वरूप प्रदान किए बिना ऐसा कर सकते हैं

@Html.TextBoxFor(m => m.StartDate, "{0:dd/MM/yyyy}") 
+2

मैं वास्तव में टैग सहायक सहायता के साथ एमवीसी 6 का उपयोग कर रहा हूं, इसलिए मैं एचटीएमएल हेल्पर्स का उपयोग नहीं कर सकता। – Beetlejuice

+1

मैं मॉडल में डिस्प्ले प्रारूप को परिभाषित करने का एक बड़ा प्रशंसक भी नहीं हूं। क्या होगा यदि मैं एक ही मॉडल का उपयोग करना चाहता हूं और तिथि को दो अलग-अलग प्रारूपों में प्रदर्शित करना चाहता हूं (यानी एक समय में और किसी अन्य समय के बिना)। – akousmata

संबंधित मुद्दे