Я использую Persian Datetime
в своем проекте. Я установил библиотеку из nuget
, чтобы преобразовать дату.
это моя модель:
public class Patient
{
public long Id { get; set; }
public string FName { get; set; }
public string LName { get; set; }
public PersianDateTime BirthDate { get; set; }
}
это мое мнение:
@model MyProject.Models.Patient
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css">
<script src="~/lib/jquery/dist/jquery.slim.min.js"></script>
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
<link rel="stylesheet" href="~/lib/md.bootstrappersiandatetimepicker/dist/jquery.md.bootstrap.datetimepicker.style.css" />
<hr />
<div class="container card border-dark">
<div class="col-md-4">
<form asp-action="Edit">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<input type="hidden" asp-for="Id" />
<div class="form-group">
<label asp-for="FName" class="control-label"></label>
<input asp-for="FName" class="form-control" />
<span asp-validation-for="FName" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="LName" class="control-label"></label>
<input asp-for="LName" class="form-control" />
<span asp-validation-for="LName" class="text-danger"></span>
</div>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text cursor-pointer" id="date3">Icon</span>
</div>
<input asp-for="BirthDate" id="ff" class="form-control" aria-label="date3" aria-describedby="date3">
</div>
<div class="form-group">
<input type="submit" value="Save" class="btn btn-primary" />
</div>
</form>
</div>
</div>
работает, когда Я открываю страницу, и все поля заполняются, но когда я хочу их отредактировать, поле BirthDate
получает неправильное значение, это код в моем контроллере:
public async Task<IActionResult> Edit(long id, [Bind("Id,FName,LName,BirthDate")] Patient patient)
{
if (id != patient.Id)
{
return NotFound();
}
if (ModelState.IsValid)
{
try
{
_context.Update(patient);
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!PatientExists(patient.Id))
{
return NotFound();
}
else
{
throw;
}
}
return RedirectToAction(nameof(Index));
}
return View(patient);
}
Я понимаю, что PersianDateTime
имеет свойство Date
у которых есть только метод get, я подумал, что когда я получаю BirthDate
как параметр string
, он имеет правильное строковое значение, но когда он собирается получить как PersianDateTime
, он имеет неправильное значение. PersianDateTime
имеет метод, который parse
string
и возвращает PersianDateTime
, но я хочу знать, как я могу использовать конвертер, который используют все мои страницы, а BirthDate
может привязать к модели