使用ASP的帮助程序生成链接的最佳选择是什么?净MVC



在ASP中使用帮助程序生成链接的最佳选择是什么?Net MVC 3?

据我所知,使用Url.RouteUrlHtml.RouteLink helper比Url.ActionHtml.ActionLink生成链接更好,因为前两个允许您使用RouteName而不是ControllerAction进行url模式匹配。

best在这种情况下是什么意思?

意思是:

  • 易于前端开发人员编写代码?(例如,他们是否必须编写c#来创建链接?)
  • 如果你改变链接指向的地方,容易维护吗?
  • 易于新开发人员遵循?
  • 最好如果你使用强类型的对象,使您的链接?
  • 如果每个链接需要的信息很少,那是最好的?

因为有很多方法可以创建链接,每个方法都有不同的目的,我在不同的时间使用它们,但我通常只是将链接包装在HtmlHelper方法中,并为它创建一个强名称:

public static MvcHtmlString GenerateProductUrl(this Urlhelper helper, Product product)
{
    return MvcHtmlString.Create(
        helper.RouteUrl(
            "widgetlink", 
            new {
                    productID = product.ProductId, 
                    productName = product.ProductName.ToUrlSlug() 
                }
        )
    );
}

然后按如下方式调用:

<a href="<%= Url.GenerateProductUrl(Model.Product) %>" class="xurl"><%= Html.Encode(Model.Product.Name) %></a>

如果你希望生成一个完整的链接(可能是因为你没有专门的CSS类用于单个链接),那么你可以使用:

public static MvcHtmlString GenerateProductLink(this Htmlhelper helper, Product product)
{
    return MvcHtmlString.Create(
        helper.RouteLink(
            "widgetlink", 
            new {
                    productID = product.ProductId, 
                    productName = product.ProductName.ToUrlSlug() 
                }
        )
    );
}

使用HtmlHelpers和UrlHelpers给你以下好处:

  • 一个更改链接的规范位置
  • 容易记住的名字,与智能感知生成(开始输入Html.和所有的链接显示,特别是如果你把Generate作为前缀来生成链接和url
  • 使用HtmlHelpers当你需要一个完整的链接封装,使用UrlHelpers当你只需要一些东西来构建一个URL
在我写的一篇博客文章中,我详细介绍了用ASP编写url的一些技巧。净MVC。

您尝试使用@html.ActionLink();?

相关内容

最新更新