将URL添加到html.grid列

时间:2011-10-26 13:59:57

标签: asp.net-mvc-2 spark-view-engine

!{Html.Grid(Model.Results)
        .Columns(column =>
        {
          column.For(x => x.Title).Named("Article Name");
          column.For(x => x.Sites);
          column.For(x => x.PreviousPath).Named("Previous Path");
          column.For(x => x.CurrentPath).Named("Current Path");
          column.For(x => x.PreviousUrl).Named("Previous Url");
          column.For(x => x.CurrentUrl).Named("Current Url");
          column.For(x => x.LogDate).Named("Date");
        }
)
  .Empty("There are no R301s.")
}

在上面的网格中我有一个CurrentUrl。此URL指向一个网站。我需要将当前URL设为指向同一个URL的超链接。

在我添加的页面上

use namespace="MvcContrib.UI.Grid.ActionSyntax"

有一种添加超链接的Action语法。我认为代码看起来像

column.For(x => x.CurrentUrl).Named(“Current Url”)。Action(href)

需要语法帮助才能在上面的列中添加超链接。

1 个答案:

答案 0 :(得分:3)

除非你想使用ActionSyntax,否则你可以独立创建Html.ActionLink,假设你知道你的href有什么值。

如果href是实际的URL(http://www.example.com),则标准HTML适用于Spark:

column.For(c => 
           string.Format("<a href='{0}'>{1}</a>", x.Grade, "Previous Url"))
                 .Named("Column Header")
                 .DoNotEncode();

如果您根据设置的操作名称和ID(例如指向编辑页面)构建网址:

column.For(c => 
           Html.ActionLink("Previous Url", 
                           "Action_Method_Name", 
                           new { controller = "DifferentController", //optional
                                 id = c.YourIdColumnIfRequired  //optional
                               }) 
               .Named("Column Header")
               .DoNotEncode();