场景:- 我有以下模式的网址:-
localhost:8080/albums/
routes.MapRoute(
{
name: "AlbumHome",
url : "Albums/{*albumName}"
defaults: new {controller = "Albums", action="Index", albumName = ""}
}
现在在我的操作中,我从数据库中获取 albumName,现在我应该如何在 url 中附加 albumName。
我希望 url 为:-
localhost:8080/albums/hindi
localhost:8080/albums/kanada
and so on.
行动
public ActionResult GetAlbumName()
{
//get the albumName from db
return RedirectToRoute("AlbumHome",albumName);
}
public ActionResult Index(string albumName)
{
return view();
}
如何在url中追加这个albumName?
最佳答案
你几乎是对的!
有一个overload对于 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 }
}
关于c# - 如何在 asp.net mvc 的 url 中附加字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31771088/