2011-10-26 35 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