如何在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);