如何根据客户端年龄更改WebGrid中链接的URL

时间:2015-02-10 12:24:41

标签: c# asp.net asp.net-mvc asp.net-mvc-5 webgrid

我有一个List<WebGridColumn>表,显示了成人和儿童的客户列表。根据客户的年龄,他们有不同的URL,所以成年人 / secure / client / [Page URL]和一个孩子是/ secure / junior / [Page 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)
        {

我怎么做,因为我想不出办法。

由于

1 个答案:

答案 0 :(得分:1)

在视图中声明变量,如下所示:

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")) });
...