【问题标题】:Change url (redirection) in asp .NET在 asp .NET 中更改 url(重定向)
【发布时间】:2016-07-25 16:34:01
【问题描述】:

我正在开发一个 C# mvc 应用程序。在我的站点中,我有这个 url abc.com/About/WhoWeAre,其中“About”是控制器,“WhoWeAre”是操作名称。但我希望这个 url 以abc.com/About/who-we-are 的形式返回。问题是我无法命名其中包含“-”的操作。我尝试使用HttpContext Response 使用Url Redirection,但找不到解决方案。

如果我在 Route Config 中处理“About/who-we-are”的请求并将其路由到“About/WhoWeAre”,则它正在使用地址栏中所需的 url。但是,当我请求“About/WhoWeAre”时,它会在地址栏中返回具有相同(“About/WhoWeAre”)网址的页面,该网址重复了该网址。如何重定向?

如有任何问题,请随时提出。

【问题讨论】:

标签: c# asp.net-mvc url-redirection http-status-code-301


【解决方案1】:

使用 ActionName 属性映射 Url。下面是例子

 public class AboutController : Controller
 {

    [ActionName("Who-we-are")]
    public ActionResult WhoWeAre()
    {
        return View();
    }
 }

【讨论】:

  • 它适用于这个网址:abc.com/About/who-we-are 但不适用于 abc.com/About/WhoWeAre
  • ActionName 属性只允许为一种方法传递一个名称。如果你想为同一个动作映射多个 url,那么我们可以定义多个匹配的路由。这是映射到您的问题的示例modernpathshala.com/Forum/Thread/Interview/8482/…
  • 感谢您的帮助@ashish 我已经实现了链接中显示的方法。但我的要求不同,我希望用户浏览器上显示的 URL 应该是 abc.com/About/who-we-are 不管他输入什么 url
【解决方案2】:

您可以使用 ActionName 属性使用 C# 方法名称中不允许的字符重命名您的操作。

【讨论】:

  • 感谢@ScoobyDrew18
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-27
  • 2017-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-02
相关资源
最近更新 更多