簡體   English   中英

ASP.Net WebApi和KO發行日期

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM