在 asp .NET 中更改 url(重定向)
Posted
技术标签:
【中文标题】在 asp .NET 中更改 url(重定向)【英文标题】:Change url (redirection) in asp .NET 【发布时间】: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”)网址的页面,该网址重复了该网址。如何重定向?
如有任何问题,请随时提出。
【问题讨论】:
iis.net/downloads/microsoft/url-rewrite 【参考方案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以上是关于在 asp .NET 中更改 url(重定向)的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Web API更改请求URI(重定向到另一个方法)
如何通过更改 ASP.NET MVC 中的 Url 来阻止对控制器的访问?