为asp.net mvc应用程序创建链接

时间:2010-03-02 14:45:30

标签: asp.net asp.net-mvc

我的网站上有菜单, 一些链接是内部的,并使用Html.ActionLink方法构建,有些是外部的,并使用标记构建。

但我不喜欢这段代码,我更喜欢有一行而不是两行。 但我不知道怎么做,有人可以帮帮我吗?

<table width="100%" border="0" cellpadding="0" cellspacing="0">
<%
    foreach (AtomicCms.Core.DomainObjectsImp.MenuItem item in Model.MenuItems)
    {
        if (!item.IsExternalUrl)
        {
%>
<tr align="left">
    <td>
        <%=Html.ActionLink(Html.Encode(item.Title), "Content", "Home", new { id = item.Entry.Id, name = item.Entry.Alias }, new {title = Html.Encode(item.Title), @class="mainlevel"})%>
    </td>
</tr>
<%}
        else
        {
%>
<tr align="left">
    <td>
        <a href="<%=item.NavigateUrl %>" class="mainlevel">
            <%=Html.Encode(item.Title)%></a>
    </td>
</tr>
<%} %>
<%
    } %>

2 个答案:

答案 0 :(得分:3)

我会将其解析为html辅助方法。它看起来像是:

public static string MenuItemLink(this HtmlHelper html, MenuItem item) {
    ...
}

您的观看代码看起来像:     &lt;%= Html.MenuItemLink(item)%&gt;

答案 1 :(得分:0)

为什么不在控制器中构建链接并将其合并到模型中?那你只需要第二行?也就是说,您的MenuItem模型是链接及其相关文本的集合。使用Controller中的UrlHelper在控制器中创建链接。