2013-01-15 64 views
4

我有一個這樣的網格:顯示使用的WebGrid原始的HTML在ASP.NET MVC 3

WebGrid grid = new WebGrid(source: Model, rowsPerPage: 5, ajaxUpdateContainerId: "GridContainer"); 

現在,我想顯示 「爲myContent」 一欄爲原料HTML。我該怎麼辦?

<div id="GridContainer"> 
    @grid.GetHtml(columns: 
     grid.Columns(
      grid.Column(
       columnName: "MyContent", 
       //Format: What should I put here? 
      ) 
     ) 
    ) 
</div> 

回答

5

使用

<div id="GridContainer"> 
    @grid.GetHtml(columns: 
     grid.Columns(
      grid.Column(
       columnName: "MyContent", 
       format: (item) => 
        { 
         var links = Html.ActionLink("Edit", "Edit", new {id = item.PrimaryKey}) + " | " + 
            Html.ActionLink("Details","Details", new { id = item.PrimaryKey}) + " | "+ 
            Html.ActionLink("Delete", "Delete", new { id = item.PrimaryKey}); 

         return Html.Raw(links); 
        } 
       ) 
      ) 
     ) 

這使得作爲

<td> 
    <a href="/Home/Edit/5">Edit</a> | 
    <a href="/Home/Details/5">Details</a> | 
    <a href="/Home/Delete/5">Delete</a> 
</td> 
+0

感謝您的幫助。但是,如果我只想將所有內容呈現爲原始Html,該怎麼辦?這只是一個標籤格式化的段落。 – AnhTriet

+2

format:(item)=> Html.Raw(item),你會得到項目的HTML文本 –

+0

不,我得到的是'RuntimeBinderException'與消息'最好的重載方法匹配'System.Web.Mvc.HtmlHelper .Raw(string)'有一些無效的參數'。我認爲'item'不是一個字符串。 – AnhTriet

0

我認爲這是更清潔使用註釋模型。

[GridColumn(Title="&nbsp;", SanitizeEnabled=false,EncodeEnabled=false)] 
    public IHtmlString RateLink 
    { 
     get{ 
      return new HtmlString("<a href=\"" + BaseUrl + Id + "\" target=\"_blank\">Open</a>"); 
     } 
    } 

如果你只使用註解你的HTML只需要:

@Html.Grid(Model).AutoGenerateColumns()