Как разделить и связать json вернуть ключ даты и значение в текстовое поле ввода - PullRequest
0 голосов
/ 20 января 2020

Во-первых, у меня есть 3 поля ввода (день, месяц, год). Я сделал Json возврат из моего контроллера и сделал функцию привязки ключа и значения с помощью jquery. Проблема в том, что я не знаю, как разделить значение Datetime на день, месяц, год и привязать к моим входам, потому что это значение Datetime выглядит как

EntryDate: "/Date(940786200000)/"

Мой контроллер

        [HttpGet]
        public ActionResult getBookById(int? id)
        {
            TB_EnglishBooks tbook = db.TB_EnglishBooks.Where(x => x.ItemID == id).FirstOrDefault();
            return Json(tbook, JsonRequestBehavior.AllowGet);
        }

My Html Просмотр

<input class="form-control" id="Day" type="text" placeholder="Day" style="width: 94px;">
<input class="form-control" id="Month" type="text" placeholder="Month" style="width: 94px;">
<input class="form-control" id="Year" type="text" placeholder="Year" style="width: 94px;">

Моя функция привязки

function bindcontrol(data) {
            $.each(data, function (key, value) {
                $("#mymodal").modal('show');
                if (value == true || value == false) {
                    $("#addform").find("input[type='checkbox'][name='" + key + "']").prop("checked", value);
                }
                else {
                    $("#addform").find("input[name='" + key + "']").val(value);
                    $("#addform").find("textarea[name='" + key + "']").val(value);
                    $("#addform").find("select[name='" + key + "']").val(value);
                }
            })
        }

1 Ответ

1 голос
/ 20 января 2020

Пожалуйста, проверьте эту ссылку

ASP. NET MVC Формат даты JsonResult

Или, если вы хотите выполнить на сервере

https://www.developer.com/net/dealing-with-json-dates-in-asp.net-mvc.html

function ToJavaScriptDate(value) {
  var pattern = /Date\(([^)]+)\)/;
  var results = pattern.exec(value);
  var dt = new Date(parseFloat(results[1]));
  return (dt.getMonth() + 1) + "/" + dt.getDate() + "/" + dt.getFullYear();
}

function bindcontrol(data) 
{
    $.each(data, function (key, value) 
    {
        $("#mymodal").modal('show');
        if (value == true || value == false) {
            $("#addform").find("input[type='checkbox'][name='" + key + "']").prop("checked", value);
        }
        else 
        {
           if(key =="date") // here you date filed
           {
             $("#addform").find("input[name='" + key + "']").val(ToJavaScriptDate(value));
           }
           else
           {
               $("#addform").find("input[name='" + key + "']").val(value);
           }

            $("#addform").find("textarea[name='" + key + "']").val(value);
            $("#addform").find("select[name='" + key + "']").val(value);
        }
    });
}

Если вы хотите выполнить вышеуказанную операцию, на стороне сервера необходимо добавить некоторый класс с JsonTextWriter

1) Создать Json Результат класса

public class JsonNetResult : JsonResult
{
  public object Data { get; set; }

  public JsonNetResult()
  {
  }
  ...
}

2) Метод переопределения на уровне контроллера, если вы выполняете только уровень контроллера, либо вы можете создать атрибут и зарегистрироваться в глобальном файле, а также для всех уровней контроллера.

public override void ExecuteResult(ControllerContext context)
{
  HttpResponseBase response = context.HttpContext.Response;
  response.ContentType = "application/json";
  if (ContentEncoding != null)
    response.ContentEncoding = ContentEncoding;
  if (Data != null)
  {
   JsonTextWriter writer = new JsonTextWriter(response.Output) { Formatting = Formatting.Indented };
   JsonSerializer serializer = JsonSerializer.Create(new JsonSerializerSettings());
   serializer.Serialize(writer, Data);
   writer.Flush();
  }
}

3) Метод контроллера

public JsonNetResult GetOrder(DateTime id)
{
   TB_EnglishBooks tbook = db.TB_EnglishBooks.Where(x => x.ItemID == id).FirstOrDefault();
            return Json(tbook, JsonRequestBehavior.AllowGet);
  return new JsonNetResult() { Data=tbook};
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...