【问题标题】:Convert Query string to Route Path将查询字符串转换为路由路径
【发布时间】:2016-07-04 15:25:29
【问题描述】:

我有一个问题,似乎无法解决。我有一个网址,就像:

myurl/?culture=fr

我想要的是

myurl/fr

我的控制器看起来像:

public ActionResult Index(string culture = null)

还有我的 routeConfig:

routes.MapRoute(
    name: "Languages",
    url: "{controller}/{action}/{culture}"
);

这会导致页面无法正确重定向。 有什么解决办法吗?

【问题讨论】:

  • 你能提供更多细节吗?当您尝试使用 myurl/fr 语法进行重定向时,您会看到什么结果?
  • 我得到:“/”应用程序中的服务器错误。找不到资源。

标签: asp.net asp.net-mvc asp.net-mvc-routing url-routing


【解决方案1】:

如果您将“fr”附加到 URL (www.yourUrl.com/fr) 的根目录,请在您的路由中提供默认控制器和操作。像这样:-

routes.MapRoute(
name: "Languages",
url: "{controller}/{action}/{culture}",
defaults: new { controller = "Home", action = "Index"}

);

将“Home”替换为您的默认控制器,将“Index”替换为默认操作。

【讨论】:

  • 你能解释一下吗,我的 routes.MapRoute 应该是什么?
  • 它不起作用。如果用作 myurl/Home/Index/fr 会导致页面无法正确重定向,如果用作 myurl/fr 则会导致服务器错误
  • 是 Home 控制器中的 Index 操作方法吗?
  • 它在我这边工作正常。您是否从操作方法返回正确的视图?或者在操作方法上设置一个断点并检查您的参数是否有价值?如果它具有价值,则动作方法中的返回语句有问题。
猜你喜欢
  • 2011-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-31
  • 1970-01-01
  • 2017-06-26
  • 1970-01-01
相关资源
最近更新 更多