/ / Aplikacja MVC C #, procent pola tekstowego a procent zapisu bazy danych - c #, asp.net-mvc

MVC C # application, procent textbox a procent zapisu bazy danych - c #, asp.net-mvc

Zastanawiałem się, jaki jest najprostszy sposób na wdrożenie następujących -

Mam pole tekstowe, które użytkownik może wprowadzić w procentach, liczbę należy zapisać jako podzieloną przez 100.

Przykład: Jeśli użytkownik wpisze w pole tekstowe 45.2, należy to zapisać w bazie danych jako .452.

Jaki jest najprostszy sposób na wdrożenie tego w aplikacji MVC C #?

mam PercentDisplay własność i Percent właściwość na modelu. Kiedy model wraca do kontrolera, dzielę się PercentDisplay o 100 i umieść wynik w Percent, ale chciałbym to zrobić bez dodatkowej własności.

Jakieś sugestie? Czy jest jakiś sposób, aby poradzić sobie z tym w Widoku?

Dzięki!

Odpowiedzi:

2 dla odpowiedzi № 1

Istnieją tutaj 3 warstwy i 2 granice.

  1. Kontroler widoków
  2. Model kontrolera

Powinieneś otrzymywać wartość 45.2 od użytkownika w Widoku. To dotarłoby do kontrolera jako 45.2.

W kontrolerze powinieneś przekonwertować go na 0.452 (za pomocą pomocniczej klasy Business Logic) lub wysłać 45.2 do DB za pośrednictwem modelu, który ma być zapisany jako 0.452.

NIE powinieneś zajmować się konwersją w widoku. Wyobraź sobie, że miałeś więcej niż 1 widok. Konwersja byłaby wykonywana wiele razy. To pokonuje cel.


0 dla odpowiedzi nr 2

Możesz zmienić get działanie Percent właściwość do obsady i podziału, a nie mieć set operacja. Nie mogę ci podać przykładu, ponieważ nie podałeś kodu, który wykonuje rzutowanie i dzielenie.

Z drugiej strony oto przykład:

public decimal Percent
{
get
{
var p = decimal.Parse(PercentDisplay);
return p / 100;
}
}

chcesz zawinąć parsę, a może nawet użyć TryParse zamiast tego, aby zapewnić bezpieczeństwo.