如何根据客户年龄更改 WebGrid 中 Link 的 URL

How To Change The URL Of A Link In A WebGrid Depending On Clients Age

我有一个 List<WebGridColumn>table 显示客户列表,包括成人和 child。根据客户的年龄,他们有不同的 URL,所以成年人 /secure/client/[Page URL] 和 child 的是 /secure/junior/[Page URL].

我遇到的问题是我不知道如何让我的 link 用户点击将他们引导到正确的 URL。

以下是我有但不起作用的内容:

List<WebGridColumn> cols = new List<WebGridColumn>();
        cols.Add(new WebGridColumn { Header = "Client name", ColumnName = "ClientName", CanSort = true, Format = (item) => String.Format("<a onclick=\"showPopUp()\" href=\"/Secure/Adviser/Client/?ClientIdentifier={0}\">{1}</a>", item.Identifier, item.ClientName) });
        cols.Add(new WebGridColumn { Header = "Account number", ColumnName = "AccountNumber", CanSort = true });
        foreach (ClientViewColumn c in currentClientView.Columns)
        {

由于href设置

,这对成年人来说效果很好

我尝试在它周围添加一个 if 语句,但这会导致服务器错误,如下所示:

List<WebGridColumn> cols = new List<WebGridColumn>();
        if (AJBG.CMS2.Sippcentre.AppCode.Functions.UserDetails.IsJunior())
        {
            cols.Add(new WebGridColumn { Header = "Client name", ColumnName = "ClientName", CanSort = true, Format = (item) => String.Format("<a onclick=\"showPopUp()\" href=\"/Secure/Adviser/Junior/?ClientIdentifier={0}\">{1}</a>", item.Identifier, item.ClientName) });
        }
        else
        {
            cols.Add(new WebGridColumn { Header = "Client name", ColumnName = "ClientName", CanSort = true, Format = (item) => String.Format("<a onclick=\"showPopUp()\" href=\"/Secure/Adviser/Client/?ClientIdentifier={0}\">{1}</a>", item.Identifier, item.ClientName) });
        }   
        cols.Add(new WebGridColumn { Header = "Account number", ColumnName = "AccountNumber", CanSort = true });
        foreach (ClientViewColumn c in currentClientView.Columns)
        {

怎么办,我想不出办法。

谢谢

在您的视图中声明变量如下:

var isJunior = AJBG.CMS2.Sippcentre.AppCode.Functions.UserDetails.IsJunior();

然后在你的string.Format:

中进行如下评估
 (isJunior ? "Junior" : "Client")

您的代码将变成这样:

    var isJunior = AJBG.CMS2.Sippcentre.AppCode.Functions.UserDetails.IsJunior();
    List<WebGridColumn> cols = new List<WebGridColumn>();
        cols.Add(new WebGridColumn { Header = "Client name", 
        ColumnName = "ClientName", CanSort = true, 
        Format = (item) => 
        String.Format("<a onclick=\"showPopUp()\" href=\"/Secure/Adviser/{2}/?ClientIdentifier={0}\">{1}</a>", item.Identifier, item.ClientName, (isJunior ? "Junior" : "Client")) });
...