RazorEngine используется для запуска представлений RRor C# в приложении ASP.NET MVC4.Как игнорировать DivideByZeroException в представлениях Razor
Просмотров содержат десятичные выражения, завернутые в вызове функции пользовательского формата, как
<div>@Format(somedecimalexpression/someotherdecimalexpression)</div>
Это вызывает исключение,
Attempted to divide by zero
если значение someotherdecimalexpression 0
Как заставить бритву двигатель игнорировать деление на нулевое исключение? Он может возвращать большое десятичное число или null в пустой строке, если это происходит.
Выражения создаются конечными пользователями во время выполнения. Поля базы данных имеют десятичный тип, и трудно преобразовать все операнды в двойное, чтобы удалить это исключение.
Проверка на наличие перегрева artihmetic не проверяется в свойствах проекта, но это не помогает. Я попытался
<div>@Eval("somedecimalexpression/0")</div>
и в шаблоне базового класса
public string Eval(string expression) {
try {
return Format(Run(expression));
}
catch (DivideByZeroException) {
return ""
}
}
но получил ошибку компиляции, так как не существует Запуск метода.
Вам не следует размещать какую-либо логику в виде. Таким образом, вы можете добавить другое свойство readonly к вам, которое отобразит деление в нужном формате. – Uriil