如何在asp.net mvc中在url中附加字符串

本文关键字:url 字符串 中在 mvc asp net | 更新日期: 2023-09-27 18:06:07

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

localhost:8080/相册/

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

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

我希望url为:-

localhost:8080/相册/印地语
localhost:8080/相册/假名
等等

操作

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

如何在url中附加此albumName?

如何在asp.net mvc中在url中附加字符串

你几乎做对了!

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);