设想:-
我的网址采用以下模式:-
本地主机:8080/专辑/
routes.MapRoute(
{
name: "AlbumHome",
url : "Albums/{*albumName}"
defaults: new {controller = "Albums", action="Index", albumName = ""}
}
现在,在我的操作中,我从数据库获取 albumName,现在我应该如何在 url 中附加 albumName。
我希望网址为:-
本地主机:8080/专辑/印地语
本地主机:8080/专辑/加拿大
等等。
Action
public ActionResult GetAlbumName()
{
//get the albumName from db
return RedirectToRoute("AlbumHome",albumName);
}
public ActionResult Index(string albumName)
{
return view();
}
如何在 url 中附加此专辑名称?
你几乎猜对了!
有一个overload https://msdn.microsoft.com/en-us/library/system.web.mvc.controller.redirecttoroute(v=vs.118).aspx#M:System.Web.Mvc.Controller.RedirectToRoute%28System.String,System.Object%29 for RedirectToRoute
它允许您添加路由值作为object
范围。在你的例子中它看起来像这样:
public ActionResult GetAlbumName()
{
//get the albumName from db
return RedirectToRoute("AlbumHome", new { albumName });
}
您还可以像这样更明确地定义您的路线:
routes.MapRoute(
{
name: "AlbumHome",
url : "Albums/{albumName}"
defaults: new {controller = "Albums", action="Index", albumName = UrlParameter.Optional }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)