2013-04-10 37 views
0

我正在使用asp mvc3.I想了解如何使我的Url友好。 这是我的仓库层:如何使网址与asp mvc路由友好?

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路由?

+0

你能否描述一下“波斯节”“波斯语详情” – Rajpurohit 2013-04-10 06:33:30

+1

http://stackoverflow.com/queue stions/7851730/mvc-route-actionlink-url-use-name-instead-of-id – 2013-04-10 06:37:05

+0

我的意思是代替看〜/ Section/Details/3我想看〜/موبایل/جزییات/بخش。波斯语的部分和细节。 – 2013-04-10 06:37:49

回答

2

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

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

...并改变它的东西是这样的:

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

然后让你的行动走,而不是ID名称:

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