MVC 5 Формат даты отображается как MM / dd / гггг в Редактировать, когда я хочу дд / мм / гггг - PullRequest
0 голосов
/ 30 октября 2018

Я знаю, что это старая проблема, на которую много раз отвечали, но я искал несколько месяцев, не решая мою проблему. Мое приложение является только локальным и должно быть en AU Я новичок, и ответы, которые я нашел, относятся к глобальному файлу, которого нет в MVC 5, поэтому я полностью сбит с толку (полагаю, я использую Startup.cs ??). Не знаю, нужен ли мне собственный маршрут или пользовательское связующее для моделей.

Модель

{
    public partial class SuspensionHist
    {
        [Key]
        [Column(Order = 0)]
        public int AssociId { get; set; }
        [Key]
        [Column(Order = 1)]
        public short SuspensionNo { get; set; }
        [Key]
        [Column(Order = 2)]
        [DataType(DataType.Date)]
        [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
        public DateTime SuspensionDate { get; set; }
        public short? OffenceNo { get; set; }
        public bool? SuspensionServed { get; set; }
        public byte[] SsmaTimeStamp { get; set; }
    }
}

Контроллер

// GET: SuspensionHists / Edit / 5 Публичная асинхронная задача Edit (int? AssociId, короткий? SuspensionNo, DateTime SuspensionDate) { если (AssociId == ноль) { return NotFound (); }

        if (SuspensionNo == null)
        {
            return NotFound();
        }

        if (SuspensionDate == null)
        {
            return NotFound();
        }

        var suspensionHist = await _context.SuspensionHist.FindAsync(AssociId, SuspensionNo, SuspensionDate);
        if (suspensionHist == null)
        {
            return NotFound();
        }
        ViewBag.SuspensionNo = new SelectList(_context.Suspension, "SuspensionNo", "SuspensionNo");
        return View(suspensionHist);
    }

    // POST: SuspensionHists/Edit/5
    // To protect from overposting attacks, please enable the specific properties you want to bind to, for 
    // more details see http://go.microsoft.com/fwlink/?LinkId=317598.
    [HttpPost]
    [ValidateAntiForgeryToken]
    public async Task<IActionResult> Edit(int? AssociId, short? SuspensionNo, DateTime SuspensionDate, [Bind("AssociId,SuspensionNo,SuspensionDate,OffenceNo,SuspensionServed,SsmaTimeStamp")] SuspensionHist suspensionHist)
    {
        if (AssociId != suspensionHist.AssociId)
        {
            return NotFound();
        }

        if (SuspensionNo != suspensionHist.SuspensionNo)
        {
            return NotFound();
        }

        if (SuspensionDate != suspensionHist.SuspensionDate)
        {
            return NotFound();
        }

        if (ModelState.IsValid)
        {
            try
            {
                _context.Update(suspensionHist);
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!SuspensionHistExists(suspensionHist.AssociId))
                {
                    return NotFound();
                }
                else
                {
                    throw;
                }
            }
            return RedirectToAction(nameof(Index));
        }
        return View(suspensionHist);
    }

1 Ответ

0 голосов
/ 20 ноября 2018

Спасибо Ясу Икеде за следующее: Проблема в том, что в URL есть '/'. В индексном представлении я изменил ссылку с:

@Html.ActionLink("Edit", "Edit", new { AssociId = item.AssociId, SuspensionNo = item.SuspensionNo, CalendarDate = item.CalendarDate.ToString("dd/MM/yyyy") })

до

 <a asp-action="Edit" asp-route-Associid="@item.AssociId" asp-route-SuspensionNo="@item.SuspensionNo" asp-route-SuspensionDate="@item.SuspensionDate.ToString("o")">Edit</a>

Это исправляет проблему с маршрутизацией, и Редактирование теперь работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...