Jamie888 Ответов: 1

Html не удалось правильно отобразить данные, отличные от строкового типа данных


Привет, у меня есть некоторые значения, возвращаемые из моего контроллера, написанного на C#. Я отладил коды, и все возвращенные данные в порядке. Но когда я пытаюсь отобразить данные в HTML, они кажутся странными для всех тех, которые не относятся к строковому типу данных.
Например, если у меня есть дата и время в 2016-09-27 годах, то она будет отображаться как /Date(123456789)/.
Ниже приведен мой скрипт в формате javascript:
PullRecordsForEfficiencyTable: function(firstName, customerId){
    firstName = firstName;
    customerId = customerId;

    $.ajax({
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        type: "POST",
        url: "/Customer/LoadRecordsForEfficiencyTable",
        data: JSON.stringify({
              firstName :firstName;
              customerId : customerId;

        }),
        success: function (data) {
            document.getElementById('dvFirstName').innerHTML = data.data[0].Name;
            document.getElementById('dvStartDate').innerHTML = data.data[0].StartDate;
        },
        fail: function (jqXHR, textStatus, errorThrown) {
            alert(errorThrown);
        },
        error: function (jqXHR, textStatus, errorThrown) {
            alert(errorThrown);
        }

    });
},



"FirName" появляется идеально, но для "StartDate" он будет отображаться как /Date(123456789)/.
Есть идеи?

Что я уже пробовал:

1. попытался поискать в интернете, но не получил никаких подсказок.

1 Ответов

Рейтинг:
12

Karthik_Mahalingam

попробовать это

function formatDate(date) {
         var d = new Date(date),
             month = '' + (d.getMonth() + 1),
             day = '' + d.getDate(),
             year = d.getFullYear();

         if (month.length < 2) month = '0' + month;
         if (day.length < 2) day = '0' + day;

         return [year, month, day].join('-');
     }


document.getElementById('dvStartDate').innerHTML = formatDate(new Date(parseInt(data.data[0].StartDate.substr(6))));


Jamie888

Сэр, могу я узнать, для чего нужен субстрат(6)?

Karthik_Mahalingam

удалять /Дата(

Jamie888

Я проверил онлайн, будет ли javascript отображать любую дату и время как /Date(123456789)/, если мы не изменим ее значение, как предложил сэр выше?

Karthik_Mahalingam

если ajax json передается как объект datetime, то он будет отображаться только так.

Jamie888

Я изменил ваш сценарий на:
возвращение [месяц, день, год].присоединяйтесь('/') + "" + [часы, минуты, секунды].присоединяйтесь к(':');

Как я могу добавить в него "AM" или "PM"?

Jamie888

Сэр, влияет ли это и на другие типы данных? Например, двойное или целое число? Это связано с тем, что у меня есть значение, возвращаемое контроллером(двойной тип данных) со значением 0.5, но отображаемое как "undefined" в HTML.

Karthik_Mahalingam

ВАР ДТ = [месяц, день, год].присоединяйтесь('/') + "" + [часы, минуты, секунды].присоединяйтесь к(':');
var ampm = d. getHours() >= 12 ? 'pm' : 'am';
возврат dt + '' + ampm

Karthik_Mahalingam

этот код предназначен только для столбца даты. не ко всем остальным свойствам.

Jamie888

У меня есть значение, которое находится в двойном типе данных в контроллере (например, 0.5), но когда оно отображается в HTML, оно изменяется на "undefined". Я пытался отладить его, но не могу найти никаких подсказок, так как в последней строке кодов в controller(C#) он все еще равен 0.5, но изменен на "undefined", когда он появляется в HTML.

Karthik_Mahalingam

убедитесь, что имя свойства совпадает.

Jamie888

Извините, сэр, это моя собственная ошибка. Именно из-за опечатки возникла эта проблема. Приносим извинения за причиненные неудобства.

Karthik_Mahalingam

хм, круто,
если ваша проблема исправлена, пожалуйста, закройте этот пост.

Jamie888

Большое вам спасибо, сэр. Очень ценю это. Спасибо.

Karthik_Mahalingam

добро пожаловать Джейми Ланнистер ;)