如何在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?
你几乎做对了!
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);