我还没有真正找到通过SO搜索的解决方案。
......并怀疑我应该在模型中真正做到这一点......
但是可以使用C#代码块来添加adhoc代码,例如:
@int daysLeft = CurrentTenant.TrialExpiryDate.Subtract(DateTimeOffset.Now).Days
@if (daysLeft <= 0) {
{
<text>
Trial period completed
</text>
}
else
{
<text>
You have @daysLeft days left of you trial
</text>
}
答案 0 :(得分:9)
答案 1 :(得分:4)
您可以在razor中创建functions,这是我认为您正在寻找的。 p>
答案 2 :(得分:3)
你也可以使用模板化的剃刀爆燃。 http://haacked.com/archive/2011/02/27/templated-razor-delegates.aspx
这样的事情应该有效。
public static class RazorExtensions
{
public static HelperResult TrialMessage(this int days,
Func<T, HelperResult> template)
{
return new HelperResult(writer =>
{
if (days <=0)
template("Trial period completed").WriteTo(writer);
else
template("You have " + days + " days left of you trial").WriteTo(writer);
});
}
}
在视图中使用:
@int daysLeft = CurrentTenant.TrialExpiryDate.Subtract(DateTimeOffset.Now).Days
@daysLeft.TrialMessage(@<text>@item@</text>)