2011-10-26 30 views
1
!{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。向html.grid列添加URL

在网页上我已经加入

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

有一个动作语法添加超链接。我认为代码将看起来像

column.For(X => x.CurrentUrl).Named( “当前URL”)。行动(HREF)

需要与语法添加超链接到帮助以上列。

回答

3

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

如果href是一个实际的网址(http://www.example.com),标准的HTML工作星火:

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(); 
+0

.net 4.5(早些时候也许?)中的DoNotEncode()现在是'.Encode(false)' – FiringSquadWitness