В моем проекте у меня есть свойства, которые я хотел бы отобразить в долларовом формате. В моем классе он настроен для этого
public class Worker{
public int Id {get;set;}
public string Name {get;set;}
[DisplayFormat(DataFormatString = "{0:C0}", ApplyFormatInEditMode = true)]
public double Rev {get;set;}
[DisplayFormat(DataFormatString = "{0:C0}", ApplyFormatInEditMode = true)]
public double Cost {get;set;}
[DisplayFormat(DataFormatString = "{0:C0}", ApplyFormatInEditMode = true)]
public double Profit {get;set;}
}
Это работает и отображается правильно, однако, когда я go на страницу редактирования. Вся информация отображается в этом формате, и мне приходится менять каждое поле со знака доллара на double
, или я получаю сообщение об ошибке. Вот скриншот, показывающий. 
Даже если я хочу изменить одно поле, я должен переписать каждое поле с $ 50 000 до 50000,00. Как я могу это исправить, чтобы в Edit
мне не приходилось беспокоиться об исправлении каждого поля, и мой формат знака доллара будет отображаться в Index
или Details
и так далее? Вот мой контроллер для Edit
public async Task<IActionResult> Edit(int? id)
{
if (id == null)
{
return NotFound();
}
var worker = await _context.Workers.FindAsync(id);
if (worker == null)
{
return NotFound();
}
return View(worker);
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Edit(int id, [Bind("Id,Rev,Cost,Profit")] Worker worker)
{
if (id != worker.Id)
{
return NotFound();
}
if (ModelState.IsValid)
{
try
{
_context.Update(worker);
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!WorkerExists(worker.Id))
{
return NotFound();
}
else
{
throw;
}
}
return RedirectToAction(nameof(Index));
}
return View(worker);
}
На данный момент меня не волнует, отображается ли формат валюты в виде edit
или просто в виде числа. Я просто не хочу преобразовывать каждое поле из валюты в число, чтобы сохранить обновления в одном свойстве. Как я могу избавиться от этой ошибки? Либо оставляя в этом формате или в числовом формате.