[英]ASP.Net WebApi and KO Issue with Dates
我在ASP.Net MVC應用程序中使用EF,也在WebApi中使用這樣的元素:
[HttpGet]
public Student GetStudent(int id)
{
return db.Students.AsNoTracking().FirstOrDefault(n => n.Student_ID == id);
}
這一切都很好,我直接將其映射到ko中以供使用。 但是,當我綁定元素的任何DateTime屬性的值(即出生日期)時,我得到:1955-04-17T11:13:56。 我不想為每個日期更改Web api方法或模型,是否有可以處理來自asp.net的日期時間並更正輸入值的第三方庫或敲除函數。
正如Sridhar在評論中建議的那樣。 您可以使用moment.js來實現。
我在這里創建了一個樣本提琴-http: //jsfiddle.net/sherin81/ordwenj6/
淘汰碼
function viewModel()
{
var self = this;
self.dateInput = ko.observable("1955-04-17T11:13:56");
self.formattedDate = ko.computed(function(){
var m = moment(self.dateInput());
return m.format("DD-MM-YYYY");
});
}
ko.applyBindings(new viewModel());
HTML
<input data-bind="value : dateInput" />
<br/>
<span data-bind="text : formattedDate()" />
為了演示,我使用了輸入字段中的值進行格式化。 您可以修改代碼以使用來自webapi的值,並使用moment.js對其進行格式化 。
更新
要使用ko自定義綁定處理程序執行相同的操作,請執行以下操作
ko.bindingHandlers.dateFormattedByMoment = {
update: function (element, valueAccessor, allBindingsAccessor) {
$(element).val(moment(valueAccessor()).format("DD-MM-YYYY"));
}
};
HTML
<input id="customBinding" data-bind="dateFormattedByMoment : dateInput()" />
在這里工作的小提琴-http: //jsfiddle.net/sherin81/ujh2cg73/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.