如何在asp.net mvc中的url中追加字符串?

场景: – 我有以下模式的url: –

本地主机:8080 /专辑/

routes.MapRoute( { name: "AlbumHome", url : "Albums/{*albumName}" defaults: new {controller = "Albums", action="Index", albumName = ""} } 

现在,在我的操作中,我从数据库中获取了albumName,现在应该如何在url中附加albumName。

我希望url如下: –

本地主机:8080 /专辑/印地文
本地主机:8080 /专辑/加拿大
等等。

行动

 public ActionResult GetAlbumName() { //get the albumName from db return RedirectToRoute("AlbumHome",albumName); } public ActionResult Index(string albumName) { return view(); } 

如何在url中附加此albumName?

你几乎是对的!

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 } } 
 var context = new RequestContext( new HttpContextWrapper(System.Web.HttpContext.Current), new RouteData()); var urlHelper = new UrlHelper(context); var url = urlHelper.Action("albumName", "Albums", null); return Redirect(url);