在我看来,我在MapRoute中使用带有“name”参数的ActionLink作为UrlParameter:
foreach (var c in Model.NavCategories)
{
<li>@Html.ActionLink(c.Name, "Category", "Home", new { c.ID, Name = c.Name.ToHyphenate() }, null)</li>
}
我有一个扩展方法,也可以在网址之间插入短划线:
public static string ToHyphenate(this string request)
{
return request.Replace(" ", "-");
}
在RouteConfig中,我有这个:
routes.MapRoute(
name: "Category",
url: "Category/{id}/{name}",
defaults: new { controller = "Home", action = "Category", id = UrlParameter.Optional, name = UrlParameter.Optional },
);
导航工作正常,在地址栏中,单词的格式正确,用破折号分隔,但是当您看到“查看页面来源”时,所有以这种格式生成的网址都会显示:
<a href="/category/1/%d8%ae%d9%88%d8%af%d8%b1%d9%88">
<a href="/category/2/%d8%a8%d8%a7%d9%86%da%a9%d8%8c%">
我想在视图源中的地址栏中显示相同格式的网址,如下所示:
<a href="/category/1/my-category-name-one">
<a href="/category/2/my-category-name-two">
我的链接太多了,有没有全球方法可以避免这种情况?
感谢您的帮助......