c# - 如何在 asp.net mvc 的 url 中附加字符串?

标签 c# asp.net asp.net-mvc

场景:- 我有以下模式的网址:-

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/

相关文章:

c# - 缓存委托(delegate)结果

c# - 当 json 中的 id 属性充当对象时创建 POCO

同一站点上多用户登录的 C# 应用程序

c# - 获取页面已通过 HTTPS 加载,但请求了不安全的 XMLHttpRequest 端点 '.well-known/openid-configuration'

安装 Visual Studio 2013 更新 3 后缺少 ASP.NET 项目模板

c# - 单击按钮时在 View 中的列表框中添加项目

c# - 在 asp.net mvc 中发送电子邮件而不像在 php 中那样使用凭据

c# - 重载==和!=运算符,需要无限递归判断对象是否为null

c# - 附加和更新有什么区别?

c# - SetAuthCookie 未在我们的测试服务器上设置 cookie