RazorEngine 用于在 ASP.NET MVC4 应用程序中运行 C# Razor 视图。
视图包含包装到自定义格式函数调用的十进制表达式,例如
<div>@Format(somedecimalexpression/someotherdecimalexpression)</div>
这会导致异常
Attempted to divide by zero
如果 someotherdecimalexpression 值为 0
如何强制剃须刀引擎忽略除以零异常?如果发生这种情况,它可以在空字符串上返回大十进制数或 null。
表达式由最终用户在运行时创建。数据库字段具有十进制类型,并且很难将所有操作数转换为双精度以消除此异常。
在项目属性中未选中检查是否存在人工溢出,但这无济于事。我试过了
<div>@Eval("somedecimalexpression/0")</div>
在模板基类中
public string Eval(string expression) {
try {
return Format(Run(expression));
}
catch (DivideByZeroException) {
return ""
}
}
但由于没有 Run 方法而出现编译错误。