दिलचस्प पोस्ट
HttpURL कनेक्शन के लिए शीर्षलेख जोड़ना आप स्ट्रिंग के भीतर स्ट्रिंग की घटनाओं को कैसे गिना जाएंगे? सशक्त API सेवा जावास्क्रिप्ट में एक स्ट्रिंग के सभी संस्करणों के सूचकांकों को कैसे खोजना है? बैकस्लैश को पायथन के साथ कैसे मुद्रित करें? फ़ोटोशॉप को दो छवियों को एक साथ कैसे मिलाया जाता है? जावास्क्रिप्ट में, क्या यह एक फर्क पड़ता है अगर मैं कोष्ठक के साथ फ़ंक्शन बुलाता हूं? एफ # मान प्रतिबंध त्रुटियों को समझना PHP में पाठ से यूआरएल निकालें फ्लक्स ऐप में एजेक्स अनुरोध को कहाँ बनाया जाना चाहिए? कैसे Android में टोस्ट की स्थिति को बदलने के लिए? कैसे आर स्ट्रिंग में बैकस्लैश से बचें लूप के बराबर आकार के उप-मैट्रिक्स के लिए मैट्रिक्स को विभाजित करने के लिए जिनजा के साथ जेन्डर को प्रस्तुत करना स्ट्रिंग की बजाय अमान्य संख्या उत्पन्न करता है हेडर सूचना को संशोधित नहीं कर सकता – हेडर जो पहले से ही भेजे गए हैं … WordPress अंक

MVC4 DataType.Date EditorFor क्रोम में तिथि मान प्रदर्शित नहीं करेगा, ठीक इंटरनेट एक्सप्लोरर में

मैं अपने मॉडल पर DataType.Date विशेषता का उपयोग कर रहा हूं और मेरे विचार में एक संपादक के लिए। यह इंटरनेट एक्सप्लोरर 8 और इंटरनेट एक्सप्लोरर 9 में ठीक काम कर रहा है, लेकिन Google क्रोम में यह डेट पिकर दिखा रहा है और वैल्यू प्रदर्शित करने के बजाय यह फीका ग्रे टेक्स्ट में "महीना / दिन / वर्ष" प्रदर्शित करता है।

गूगल क्रोम क्यों मूल्य प्रदर्शित नहीं होगा?

आदर्श:

[DataType(DataType.Date)] public Nullable<System.DateTime> EstPurchaseDate { get; set; } 

राय:

 <td class="fieldLabel">Est. Pur. Date</td> <td class="field">@Html.EditorFor(m=>m.EstPurchaseDate)</td> 

क्रोम

इंटरनेट एक्स्प्लोरर

वेब के समाधान से एकत्रित समाधान "MVC4 DataType.Date EditorFor क्रोम में तिथि मान प्रदर्शित नहीं करेगा, ठीक इंटरनेट एक्सप्लोरर में"

जब आप [DataType(DataType.Date)] के साथ एक मॉडल संपत्ति को सजाने के लिए ASP.NET MVC 4 में डिफ़ॉल्ट टेम्पलेट type="date" का इनपुट फ़ील्ड उत्पन्न करता है:

 <input class="text-box single-line" data-val="true" data-val-date="The field EstPurchaseDate must be a date." id="EstPurchaseDate" name="EstPurchaseDate" type="date" value="9/28/2012" /> 

ऐसे ब्राउज़र जो HTML5 का समर्थन करते हैं, Google क्रोम एक दिनांक पिकर के साथ यह इनपुट फ़ील्ड रेंडर करता है।

तिथि को सही ढंग से प्रदर्शित करने के लिए, मान को 2012-09-28 रूप में स्वरूपित किया जाना चाहिए विनिर्देश से उद्धरण:

मूल्य: [आरएफसी 3339] में परिभाषित एक वैध पूर्ण-तिथि, अतिरिक्त योग्यता के साथ, कि वर्ष का घटक चार या अधिक अंकों की संख्या 0 से अधिक का प्रतिनिधित्व करता है।

आप DisplayFormat विशेषता का उपयोग कर इस प्रारूप को लागू कर सकते हैं:

 [DataType(DataType.Date)] [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)] public Nullable<System.DateTime> EstPurchaseDate { get; set; } 

MVC5.2 में, ~ / दृश्य / साझा / संपादक के फ़ोल्डर में Date.cshtml जोड़ें:

 @model DateTime? @{ IDictionary<string, object> htmlAttributes; object objAttributes; if (ViewData.TryGetValue("htmlAttributes", out objAttributes)) { htmlAttributes = objAttributes as IDictionary<string, object> ?? HtmlHelper.AnonymousObjectToHtmlAttributes(objAttributes); } else { htmlAttributes = new RouteValueDictionary(); } htmlAttributes.Add("type", "date"); String format = (Request.UserAgent != null && Request.UserAgent.Contains("Chrome")) ? "{0:yyyy-MM-dd}" : "{0:d}"; @Html.TextBox("", Model, format, htmlAttributes) } 

डरिन डीमित्रोव के जवाब के लिए एक अतिरिक्त के रूप में:

यदि आप केवल एक निश्चित (मानक) प्रारूप से अलग करने के लिए इस विशेष लाइन का उपयोग करना चाहते हैं, तो आप MVC5 में उपयोग कर सकते हैं:

 @Html.EditorFor(model => model.Property, new {htmlAttributes = new {@Value = @Model.Property.ToString("yyyy-MM-dd"), @class = "customclass" } }) 

एमवीसी 3 में मुझे जोड़ना था:

 using System.ComponentModel.DataAnnotations; 

संपत्तियों को जोड़ते समय हमारे बीच में:

 [DataType(DataType.Date)] [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)] 

खासकर यदि आप इन गुणों में मेरे जैसे एमेंक्स फ़ाइल जोड़ रहे हैं। मुझे पता चला कि डिफ़ॉल्ट रूप से .एएमएमएक्स फाइलों में ऐसा नहीं है जिससे केवल प्रोपेकट्स पर्याप्त नहीं हैं।

यदि आप अपने मॉडल से [DataType(DataType.Date)] को निकालते हैं, तो क्रोम में इनपुट फ़ील्ड को type="datetime" रूप में प्रदान किया जाता है और यह datepicker नहीं दिखाएगा

मुझे अभी भी य्याय-एमएम-डीडी के प्रारूप के साथ एक मुद्दा था, लेकिन मैं Date.cshtml को बदलकर इसके आसपास आया था:

 @model DateTime? @{ string date = string.Empty; if (Model != null) { date = string.Format("{0}-{1}-{2}", Model.Value.Year, Model.Value.Month, Model.Value.Day); } @Html.TextBox(string.Empty, date, new { @class = "datefield", type = "date" }) } 

MVC4 DataType.Date Editor को उत्तर दें , क्रोम में दिनांक मान प्रदर्शित नहीं करेगा, IE में ठीक

मॉडल में आपको निम्नलिखित प्रकार की घोषणा की आवश्यकता है:

 [DataType(DataType.Date)] public DateTime? DateXYZ { get; set; } 

या

 [DataType(DataType.Date)] public Nullable<System.DateTime> DateXYZ { get; set; } 

आपको निम्न विशेषता का उपयोग करने की आवश्यकता नहीं है:

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

Date.cshtml पर इस टेम्पलेट का उपयोग करें:

 @model Nullable<DateTime> @using System.Globalization; @{ DateTime dt = DateTime.Now; if (Model != null) { dt = (System.DateTime)Model; } if (Request.Browser.Type.ToUpper().Contains("IE") || Request.Browser.Type.Contains("InternetExplorer")) { @Html.TextBox("", String.Format("{0:d}", dt.ToShortDateString()), new { @class = "datefield", type = "date" }) } else { //Tested in chrome DateTimeFormatInfo dtfi = CultureInfo.CreateSpecificCulture("en-US").DateTimeFormat; dtfi.DateSeparator = "-"; dtfi.ShortDatePattern = @"yyyy/MM/dd"; @Html.TextBox("", String.Format("{0:d}", dt.ToString("d", dtfi)), new { @class = "datefield", type = "date" }) } } 

मज़े करो! सादर, ब्लर्टन

यदि आपको तिथि के प्रारूप पर नियंत्रण रखने की आवश्यकता है (दूसरे शब्द में य्याय-एमएम-डीडी प्रारूप स्वीकार्य नहीं है तो), एक अन्य समाधान एक सहायक संपत्ति जोड़ सकता है जो कि प्रकार की स्ट्रिंग का है और उस संपत्ति के लिए कोई दिनांक सत्यापनकर्ता जोड़ता है , और UI पर इस संपत्ति के लिए बाध्य करें

  [Display(Name = "Due date")] [Required] [AllowHtml] [DateValidation] public string DueDateString { get; set; } public DateTime? DueDate { get { return string.IsNullOrEmpty(DueDateString) ? (DateTime?)null : DateTime.Parse(DueDateString); } set { DueDateString = value == null ? null : value.Value.ToString("d"); } } 

और यहाँ एक तारीख सत्यापनकर्ता है:

 [AttributeUsage(AttributeTargets.Property, AllowMultiple = true, Inherited = true)] public class DateValidationAttribute : ValidationAttribute { public DateValidationAttribute() { } protected override ValidationResult IsValid(object value, ValidationContext validationContext) { if (value != null) { DateTime date; if (value is string) { if (!DateTime.TryParse((string)value, out date)) { return new ValidationResult(validationContext.DisplayName + " must be a valid date."); } } else date = (DateTime)value; if (date < new DateTime(1900, 1, 1) || date > new DateTime(3000, 12, 31)) { return new ValidationResult(validationContext.DisplayName + " must be a valid date."); } } return null; } }