Asp.net mvc 3 如何在MVC3中将图像包装到ActionLink中?
我有一个局部视图,需要在ActionLink中包装一个图像,这样当用户单击它时,它就会去编辑图像。我有一个名为img.ashx的内容处理程序 以下是我的图像文本: 以下是我的ActionLink: @ActionLink(item.Title,“EditMediaItem”,新的{location=item.location,id=item.id}) 如何做到这一点Asp.net mvc 3 如何在MVC3中将图像包装到ActionLink中?,asp.net-mvc-3,image,Asp.net Mvc 3,Image,我有一个局部视图,需要在ActionLink中包装一个图像,这样当用户单击它时,它就会去编辑图像。我有一个名为img.ashx的内容处理程序 以下是我的图像文本: 以下是我的ActionLink: @ActionLink(item.Title,“EditMediaItem”,新的{location=item.location,id=item.id}) 如何做到这一点 提前感谢。使用Url帮助器方法Url。操作,示例: <a href="@Url.Action(item.Title, "E
提前感谢。使用Url帮助器方法Url。操作,示例:
<a href="@Url.Action(item.Title, "EditMediaItem", new { location = item.Location, id = item.Id })"><img src="#" /></a>
我喜欢使用此扩展:
public static class ImageHelpers
{
/// <summary>
/// return image link
/// </summary>
/// <param name="helper"></param>
/// <param name="id">Id of link control</param>
/// <param name="controller">target controller name</param>
/// <param name="action">target action name</param>
/// <param name="strOthers">other URL parts like query string, etc</param>
/// <param name="strImageURL">URL for image</param>
/// <param name="alternateText">Alternate Text for the image</param>
/// <param name="strStyle">style of the image like border properties, etc</param>
/// <returns></returns>
public static string ImageLink(this HtmlHelper helper, string id, string controller, string action, string strOthers, string strImageURL,
string alternateText, string strStyle, string cssClass = "imagelink")
{
return ImageLink(helper, id, controller, action, strOthers, strImageURL, alternateText, strStyle, null, cssClass);
}
/// <summary>
/// return image link
/// </summary>
/// <param name="helper"></param>
/// <param name="id">Id of link control</param>
/// <param name="controller">target controller name</param>
/// <param name="action">target action name</param>
/// <param name="strOthers">other URL parts like query string, etc</param>
/// <param name="strImageURL">URL for image</param>
/// <param name="alternateText">Alternate Text for the image</param>
/// <param name="strStyle">style of the image like border properties, etc</param>
/// <param name="htmlAttributes">html attributes for link</param>
/// <returns></returns>
public static string ImageLink(this HtmlHelper helper, string id, string controller, string action, string strOthers, string strImageURL,
string alternateText, string strStyle, object htmlAttributes, string cssClass = "imagelink")
{
// Create tag builder
var divBuilder = new TagBuilder("div");
divBuilder.AddCssClass(cssClass);
var aBuilder = new TagBuilder("a");
// Create valid id
if (!string.IsNullOrEmpty(id))
aBuilder.GenerateId(id);
// Add attributes
aBuilder.MergeAttribute("href", "/" + controller + "/" + action + strOthers); //form target URL
aBuilder.InnerHtml = "<img src='" + strImageURL + "' alt='" + alternateText + "' class='" + cssClass + "' style='border: none;'/>" + alternateText; //set the image as inner html
aBuilder.MergeAttributes(new RouteValueDictionary(htmlAttributes));
divBuilder.InnerHtml = aBuilder.ToString(TagRenderMode.Normal); //to add </a> as end tag
// Render tag
return divBuilder.ToString(TagRenderMode.Normal);
}
}
@Html.ImageLink("", "Controller", "Action", "",
"~/images/whatever.png", "My test link", "imagelinkcssclass")