我是ASP.net的新手mvc可以帮我解决如何将整个代码转换为使用html.Actionlink
<div class="MenuItemContainer">
<a href="/Home">
<div class="MenuItemContent">
<div>
<img src="/Content/TopMenu/Icons/Home.png" alt="Home" />
</div>
<div>
Home
</div>
</div>
</a>
</div>
由于
答案 0 :(得分:3)
你可以写一个自定义的html助手:
public static class HtmlExtensions
{
public static IHtmlString MyActionLink(
this HtmlHelper htmlHelper,
string linkText,
string action,
string controller,
string imageUrl,
string alt
)
{
var urlHelper = new UrlHelper(htmlHelper.ViewContext.RequestContext);
var div = new TagBuilder("div");
div.AddCssClass("MenuItemContainer");
var anchor = new TagBuilder("a");
anchor.Attributes["href"] = urlHelper.Action(action, controller);
var itemContent = new TagBuilder("div");
itemContent.AddCssClass("MenuItemContent");
var img = new TagBuilder("img");
img.Attributes["src"] = urlHelper.Content(imageUrl);
img.Attributes["alt"] = alt;
itemContent.InnerHtml = string.Format(
"<div>{0}</div><div>{1}</div>",
img,
htmlHelper.Encode(linkText)
);
anchor.InnerHtml = itemContent.ToString();
div.InnerHtml = anchor.ToString();
return new HtmlString(div.ToString());
}
}
然后使用它:
<%= Html.MyActionLink(
"Hello",
"Index",
"Home",
"~/Content/TopMenu/Icons/Home.png",
"Home"
) %>
答案 1 :(得分:0)
您需要创建自定义Html Helper,例如Helpers.MenuLink("LinkText", "View", "ImagePath/Image.png")
。
以下链接说明了如何执行此操作: http://www.asp.net/mvc/tutorials/older-versions/views/creating-custom-html-helpers-cs
答案 2 :(得分:0)
我会为此制作部分或显示模板,以呈现视图模型。您的HtmlHelper扩展方法将创建您的视图模型并调用DisplayFor或RenderPartial。
这样做的好处是可以将模板保持为HTML,这样可以更容易阅读,而不是搞乱标签制作工具。