在ASP中使用帮助程序生成链接的最佳选择是什么?Net MVC 3?
据我所知,使用Url.RouteUrl
和Html.RouteLink
helper比Url.Action
和Html.ActionLink
生成链接更好,因为前两个允许您使用RouteName
而不是Controller
和Action
进行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
您尝试使用@html.ActionLink();?