最近使用剃须刀视图并欣赏任何建议。我在视图中有以下内容:
Script.Require("Accounts");
var o = sidePanel.Entities.ToString(WorkContext.CurrentUser, false);
var t = sidePanel.Entities.Title;
<text>
<article class="widget-aside-right widget-accounts-side-widget widget">
<accounts-side-widget @o title="@t" />
</article>
</text>
和C#toString方法是:
public string ToString(IUser user, bool isOpenDynamic = true)
{
// todo (tba 11/3/15): why is groups always included?
string options = (AllAccounts ? " allaccounts" : string.Empty)
+ (EntityGroups ? " groups" : string.Empty)
+ (Balance ? " balance" : string.Empty)
+ (Number ? " number" : string.Empty)
+ " isOpen=" + (IsOpen && isOpenDynamic)
+ (ClientCode ? " clientCode" : string.Empty)
+ (BaseCurrency ? " baseCurrency" : string.Empty)
+ " missingdatareportid=" + MissingDataReportId
+ (ReportBook && user.HasPermission(PermissionType.ReportBook) ? " reportbook" : string.Empty)
+ (AccountDetailPopup ? " details" : string.Empty);
return options;
}
我无法更改后端中的变量,因为它会影响使用相同后端的许多其他客户端,但视图特定于此客户端。因此,我需要能够在视图中而不是在后端更改某个变量(isOpen)的值。
阅读有关使用Javascript和JQuery设置变量的信息,但看到这不是一个好主意。
答案 0 :(得分:1)
为该特定客户端编写另一个版本的ToString(..)方法,调用它ToStringForABCInc(...)这样,您可以维护其他客户端的现有逻辑和视图,并具有特定的视图和逻辑有特殊要求的客户。