如何使用asp mvc路由使URL友好?

时间:2013-04-10 06:08:56

标签: c# asp.net-mvc-3 asp.net-mvc-routing url-routing

我正在使用asp mvc3.I想学习如何使我的Urls友好。 这是我的存储库层:

public Section GetBySectionId(int sectionId)
{
    return context.Sections.Include("Groups").Include("Partners").Where(s => s.SectionId == sectionId).FirstOrDefault();
}

这是应用层:

public Section GetBySectionId(int sectionId)
{
    return sectionRepo.GetBySectionId(sectionId);
}

这是控制器:

public ActionResult Details(int id)
{
    var section = Mapper.Map<SectionViewModel>(sectionApp.GetBySectionId(id));
    return View(section);
}

现在举例来说,如果我使用id = 3查看某个部分的详细信息,则浏览器网址会更改为~/Section/Details/3但我希望它为~/Section in persian/Details in persian/My section name。我该怎么办呢。如何使用asp mvc routing?

1 个答案:

答案 0 :(得分:2)

您应该像这样更改路由

routes.MapRoute(..., "{controller}/{action}/{id}", ...);

...并将其更改为以下内容:

routes.MapRoute(..., "{controller}/{action}/{name}", ...);

然后让您的操作采用名称而不是ID:

Html.ActionLink(item.Name, "Details", new {item.Name})