我想用一個圖像填充一個WebGrid單元格,該圖像將打開一個基於選中哪一行的「Details」彈出窗口。目前,我有這樣的細節列:MVC3 WebGrid中的Ajax.ImageActionLink
grid.Column(header: "Details", format: (item) => @Ajax.ActionLink("pop", "GetDetails", new { id = item.FormId }, new AjaxOptions { HttpMethod = "GET", UpdateTargetId = "formdetails", InsertionMode = InsertionMode.Replace, OnSuccess = "openPopup" })
, style: "colImages"),
這打開了彈出很好,但有文「流行」之列,而不是圖像。
我見過很多網站正在討論創建一個單獨的「ImageActionLink」類來協助創建具有圖像的ActionLink對象。該代碼看起來是這樣的:
public static class ImageActionLinkHelper
{
public static IHtmlString ImageActionLink(this AjaxHelper helper, string imageUrl, string altText, string actionName, object routeValues, AjaxOptions ajaxOptions)
{
var builder = new TagBuilder("img");
builder.MergeAttribute("src", imageUrl);
builder.MergeAttribute("alt", altText);
var link = helper.ActionLink("[replaceme]", actionName, routeValues, ajaxOptions).ToHtmlString();
return new MvcHtmlString(link.Replace("[replaceme]", builder.ToString(TagRenderMode.SelfClosing)));
}
}
不過,我似乎無法得到該代碼內的WebGrid工作。這主要是因爲我需要「(item)=>」部分來獲取行的ID,以便彈出正確的細節窗口。
如何獲取「詳細信息」列以包含點擊時彈出正確的彈出窗口的小圖標?提前致謝。
編輯:這裏有幾種方法我試過用ImageActionLink
grid.Column(... format: (item) => @Ajax.ImageActionLink(...)),
錯誤:參數3:無法從 'lambda表達式' 到 'System.Func'
grid.Column(... format: (item) => @(new HtmlString(@Ajax.ImageActionLink(...)),
錯誤轉換:關鍵字,標識符或字符串在逐字說明符後預期:@
grid.Column(... format: (item) => @HtmlString(@Ajax.ImageActionLink(...)),
錯誤:'System.Web。 HtmlString「是‘類型’,但使用類似‘變量’
grid.Column(... format: @HtmlString((item) => @Ajax.ImageActionLink(...)),
錯誤:System.Web.HtmlString'是‘類型’,但使用類似‘變量’
你可以張貼一些示例代碼,你如何試圖使用'ImageActionLink'方法? – nemesv
已編輯原創帖子 –