我正在使用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?
答案 0 :(得分:2)
您应该像这样更改路由
routes.MapRoute(..., "{controller}/{action}/{id}", ...);
...并将其更改为以下内容:
routes.MapRoute(..., "{controller}/{action}/{name}", ...);
然后让您的操作采用名称而不是ID:
Html.ActionLink(item.Name, "Details", new {item.Name})