0

我正在使用 asp mvc3。我想学习如何使我的 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 转到某个部分的详细信息,浏览器 url 会更改为,~/Section/Details/3但我希望它是。~/Section in persian/Details in persian/My section name我该怎么做。如何使用 asp mvc 路由?

4

1 回答 1

2

你应该像这样改变你的路由

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

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

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

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

Html.ActionLink(item.Name, "Details", new {item.Name})
于 2013-04-10T06:41:25.980 回答