मैं सिर्फ knockout उपयोग शुरू कर दिया है और मैं दिनांक समय क्रमबद्धता और Deserialization JavaScriptSerializer का उपयोग कर के साथ मुसीबत में चल रहा हूँ।बाइंडिंग दिनांक समय डिफ़ॉल्ट के साथ दृश्य मॉडल पीटकर करने JavaScriptSerializer
मैं अपने ब्लॉग से Steves koListEditor उदाहरण में उपहार मॉडल को नवीनीकृत किया है एक संशोधित दिनांक समय क्षेत्र शामिल करने के लिए:
<asp:Content ContentPlaceHolderID="MainContent" runat="server">
<h1>Gift list editor</h1>
<p>You have asked for <span data-bind="text: gifts().length"> </span> gift(s)</p>
<form class="giftListEditor">
<table>
<tbody data-bind="template: { name: 'giftRowTemplate', foreach: gifts }"></tbody>
</table>
<button data-bind="click: addGift">Add Gift</button>
<button data-bind="enable: gifts().length > 0" type="submit">Submit</button>
</form>
<script type="text/html" id="giftRowTemplate">
<tr>
<td>Gift name: <input class="required" data-bind="value: Title, uniqueName: true"/></td>
<td>Price: \$ <input class="required number" data-bind="value: Price, uniqueName: true"/></td>
<td>Modified: <input class="required date" data-bind="value: Modified, uniqueName: true"/></td>
<td><a href="#" data-bind="click: function() { viewModel.removeGift($data) }">Delete</a></td>
</tr>
</script>
<script type="text/javascript">
var initialData = <%= new JavaScriptSerializer().Serialize(Model) %>;
var viewModel = {
gifts : ko.observableArray(initialData),
addGift: function() {
this.gifts.push({ Title: "", Price: "", Modified:"" });
},
removeGift: function (gift) {
this.gifts.remove(gift);
},
save: function() {
ko.utils.postJson(location.href, { gifts: this.gifts });
}
};
ko.applyBindings(document.body, viewModel);
$("form").validate({ submitHandler: function() { viewModel.save() } });
</script> </asp:Content>
:
public class GiftModel
{
public string Title { get; set; }
public double Price { get; set; }
public DateTime Modified { get; set; }
}
तब मैं नए क्षेत्र शामिल करने के लिए index.aspx अद्यतन
हालांकि JavaScriptSerializer serializes जब मॉडल
var initialData = <%= new JavaScriptSerializer().Serialize(Model) %>;
संशोधित तिथि इस तरह बाहर आ रहा है:
इसके अलावा का उपयोग करते समय ब्रिटेन दिनांक अर्थात
25/01/2011 दिनांक समय के लिए मान्य मान नहीं है: 25/01/2011 JavaScriptSerializer.Deserialize निम्नलिखित अपवाद फेंकता है।
हालांकि मैं 2 समस्या आ रही है यहां मुख्य प्रश्न किसी को भी सफलतापूर्वक MVC 2 से knockout इस्तेमाल किया गया है और JavaScriptSerializer datetimes के साथ काम कर ली है? मुझे लगता है मैं अपने खुद के JavaScriptSerializer लिख सकता है, लेकिन मैं वहाँ उम्मीद कर बाहर वहाँ :)
यहाँ स्टीव सैंडरसन के koListEditor के अद्यतित संस्करण के लिए कोड है एक तैयार समाधान किया गया था:
धन्यवाद
डेव
उपरोक्त को देखने वाले कोई भी व्यक्ति .. आप JSON.net का उपयोग क्लाइंट को तारीखों को भेजने के लिए कर सकते हैं जो आप चाहते हैं कि प्रारूप में .. http://james.newtonking.com/archive/2009/02/20/good देखें -date-times-with-json-net.aspx – CraftyFella