Это плохая форма для использования .ToString () или другого метода внутри Razor? - PullRequest
0 голосов
/ 24 февраля 2020

Я использую .ToString () внутри моего представления для вывода в формат валюты. Должен ли я преобразовать значения в строку перед отображением представления? Кроме того, почему второй тег h3 ниже не создает строку валюты, как первая?

EX:

<h3>Healthcare Cost Per Paycheck: @Model.TotalCostPerPaycheck.ToString("C")</h3>

<h3>Net Pay for @Model.FirstName @Model.LastName: @(Model.Salary - Model.TotalCostPerYear).ToString("C") </h3>

Вывод:

Стоимость медицинского обслуживания на зарплату: 71,16 $

Net Оплата за Альберта Уилсона: 50150.ToString ("C")

Ответы [ 2 ]

1 голос
/ 24 февраля 2020

Вы можете попробовать -

<h3>
   Healthcare Cost Per Paycheck: @(Model.TotalCostPerPaycheck.ToString("C"))
</h3>

<h3>
    Net Pay for @Model.FirstName @Model.LastName: @((Model.Salary - Model.TotalCostPerYear).ToString("C")) 
</h3>

. Для быстрого ознакомления с синтаксисом Razor вы можете увидеть эту статью.

1 голос
/ 24 февраля 2020

Нет, это не плохая форма. Это немного основано на мнении, если вы спросите меня, хотя. Думаю, вам следует сделать так, чтобы ваш код представления также читался для других, которые присоединятся к вам в проекте.

Например, я бы посоветовал вам создать новое свойство с именем NetPay или что-то в этом роде. где вы будете вычислять значения в бэкэнде (или там, где определены ваши бизнес-логики c) и будете использовать их в своем представлении вместо создания собственных вычислений в представлении.

Вы сможете просто позвоните в собственность, и все поймут, что означает эта часть на ваш взгляд. Кроме того, всякий раз, когда необходимо изменить вашу логику c, вам нужно будет только один раз изменить деталь в бэкэнде вместо того, чтобы при использовании этой логи c проходить через несколько представлений несколько раз. И самое главное, это то, что вы можете создать запасную логику c на случай, если ваше значение (не уверенное, возможно ли это, потому что я не вижу вашу модель) равно нулю.

Надеюсь, что имеет смысл и удачи!

...