2016-12-27 42 views
3

我正在使用Razor網格系統來顯示列表。我想創建一個列作爲鏈接​​操作。但我的問題是它顯示的字體結束鏈接作爲原始HTML文件。 我的代碼是如何在使用Razor的MVC中的網格/列內添加鏈接操作

columns.Add(c => c.Title).Titled("Title").Filterable(true).RenderValueAs(c => Html.ActionLink(c.Title, "Details", new { id = c.Id })); 

有脫穎而出的輸出 Output

我也用Format()RenderValueAs()放置但是結果是一樣的。 我已經通過這個鏈接進行了研究。 Link1,Link1,Link1,Link1但是找不到可能的解決方案。 我不想在沒有任何JavaScript或任何腳本語言的幫助下解決這個問題。我正在尋找只有剃鬚刀相關的解決方案。謝謝。

回答

0

可能我有自己的問題的解決方案,我已經檢查過它。

而不是使用 columns.Add(c => c.Title).Titled("Title").Filterable(true).RenderValueAs(c=>Html.ActionLink(c.Title, "Details", new { id = c.Id }));

我用

@{ 
    var grid = new WebGrid(Model); 
} 
@grid.GetHtml(
     tableStyle: "webgrid-table", 
     headerStyle: "webgrid-header", 
     footerStyle: "webgrid-footer", 
     alternatingRowStyle: "webgrid-alternating-row", 
     selectedRowStyle: "webgrid-selected-row", 
     rowStyle: "webgrid-row-style", 
     mode: WebGridPagerModes.All, 
     columns: 
      grid.Columns(
      grid.Column(columnName: "Student Name", header: "Name", format: @<text>@item.Name</text>), 
      grid.Column(columnName: "SchoolName", header: "School Name", format: @<text>@item.SchoolName</text>), 
      grid.Column(columnName: "Address", header: "Address", format: @<text>@item.Address</text>), 
      grid.Column(columnName: "City", header: "City", format: @<a>@item.City</a>), 
      grid.Column(columnName: "State", header: "State", format: @<text>@item.State</text>) 
      )) 

在這裏,我對城市的連接<a>的。所以我很安靜,可以自己定製整個網格。從參考link我得到這個策略。

1

從來沒有使用過這個grid的事情,只需寫html標籤並循環我自己,我認爲它更受控制。

在這種情況下,我認爲這是RenderValueAs方法的問題,它可能是解碼輸出。
你可以試試這個RenderValueAs(c => {string tag = generate your link tag string; return Html.Raw(tag);})

,如果它不工作,你可以在Filterable()寫一個擴展方法,生成MvcHtmlString自己,它應該工作。

+0

是的。以前我通過在最近和正在進行的項目中循環生成了這張表。但這是一個需要修改的過時項目。所以,要求各不相同。我對這種類型的解決方案並不滿意。但是,我必須。 – gdmanandamohon

相關問題