C# 更改asp.NET中的url(重定向)

C# 更改asp.NET中的url(重定向),c#,asp.net-mvc,url-redirection,http-status-code-301,C#,Asp.net Mvc,Url Redirection,Http Status Code 301,我正在开发一个C#mvc应用程序。在我的网站上,我有一个urlabc.com/About/WhoWeAre,其中“About”是控制器,“WhoWeAre”是动作名称。但我希望此url返回为abc.com/About/who we。问题是我无法命名其中包含“-”的操作。我尝试使用HttpContext响应Url重定向,但找不到解决方案 如果我在路由配置中为“About/who we are”处理请求,并将其路由到“About/whoware”,则它正在使用地址栏中所需的url。但当我请求'Abo

我正在开发一个C#mvc应用程序。在我的网站上,我有一个url
abc.com/About/WhoWeAre
,其中“About”是控制器,“WhoWeAre”是动作名称。但我希望此url返回为
abc.com/About/who we
。问题是我无法命名其中包含“-”的操作。我尝试使用
HttpContext响应
Url重定向
,但找不到解决方案

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


请随意提问。

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

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

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

 public class AboutController : Controller
 {

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

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

 public class AboutController : Controller
 {

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

Thank@ScoobyDrew18 Thank@ScoobyDrew18此url有效:abc.com/About/who-we-are但不适用于abc.com/About/WhoWeAreActionName属性只允许为一个方法传递一个名称。如果要为同一操作映射多个URL,那么我们可以定义多个匹配路由。下面是一个映射到您的问题的示例,感谢您的帮助@ashish我已经实现了链接中显示的方法。但是我的要求不同,我希望用户浏览器上显示的URL应该是abc.com/About/who-we-are,无论他输入的是什么URL。它为这个URL工作:abc.com/About/who-we-are但不适用于abc.com/About/whoweactionname属性只允许为一个方法传递一个名称。如果要为同一操作映射多个URL,那么我们可以定义多个匹配路由。下面是一个映射到您的问题的示例,感谢您的帮助@ashish我已经实现了链接中显示的方法。但我的要求不同,我希望用户浏览器上显示的URL应该是abc.com/About/who-we-are,无论他输入什么URL