2013-04-18 5 views
0

ASP.NET MVC Knockout MVC. Экран должен содержать пустое текстовое поле. С помощью кнопки. Когда пользователь нажимает кнопку, сохраненная дата должна отображаться в текстовом поле.Ошибка формата даты JSon в MVC

Банкомат, когда экран загружает дату, уже сохранен в текстовом поле '0001-01-01T00: 00: 00' Однако, когда я нажимаю кнопку, она изменяется на:/Date (1366300981661) /.

У любого есть идея, почему он это делает, и как я могу заставить его отображать только дату, когда нажимается кнопка.

Пожалуйста, смотрите код ниже: Модель

public class ClickCounterModel 
    { 
    public void ShowDates() 
     { 
      FirstDate = DateTime.Now; 
     } 
    } 

Контроллер

public class ClickCounterController : KnockoutController 
    { 
     public ActionResult ShowDates(ClickCounterModel model) 
     { 
      model.ShowDates(); 
      return Json(model); 
     } 
    } 

вид

@using PerpetuumSoft.Knockout 
@model ClickCounter.Models.ClickCounterModel 
@{ 
    var ko = Html.CreateKnockoutContext(); 
} 

<div>Dates: @ko.Html.TextBox(m => m.FirstDate) </div> 
@ko.Html.Button("Show", "ShowDates", "ClickCounter") 

@ko.Apply(Model) 
+0

Не должно ли это действительно быть прав на свой предыдущий вопрос? http://stackoverflow.com/questions/16083648/display-text-when-button-clicked/16084511 –

+0

@ PankajGarg сожалею о задержке, что я только обойдусь этим сегодня. Я попробовал то, что вы предложили: обернул его в DOM-событие и сделал ссылку на JS-файл на мой взгляд. Однако я все еще испытываю такую ​​же проблему. Чтобы проверить, я заменил код, который вы предоставили с «предупреждением», и он работал нормально, поэтому я могу только догадываться, что в вашем ответе должна быть небольшая проблема с кодом. Есть ли у вас какие-либо идеи относительно проблемы? спасибо за ответ btw – John

+0

отправлено, спасибо за помощь – John

ответ

0

Отсутствует форматирование даты после получения результатов в формате Json.

JQuery

var MyDate_String_Value = "/Date(1366300981661)/"; 
var value = new Date 
      (
       parseInt(MyDate_String_Value.replace(/(^.*\()|([+-].*$)/g, '')) 
      ); 
var dat = value.getMonth() + 
         1 + 
         "/" + 
      value.getDate() + 
         "/" + 
     value.getFullYear(); 

Click here to check result - 4/18/2013

+0

спасибо за ответ. Где я могу вставить это, хотя это в моей модели? – John

+0

В файле JavaScript закройте этот код в событии готовности DOM. В вашем файле просмотра добавьте ссылку на свой файл JavaScript. –

+0

Пожалуйста, см. Мои ответы в разделе комментариев моего Q, спасибо Pankaj – John

Смежные вопросы