如何为 www.website.com/profile 创建路由

本文关键字:profile 创建 路由 com website www | 更新日期: 2023-09-27 18:37:11

我正在编写一个网站,就像一个平台,我们可以从以下URL访问用户配置文件:

www.mywebsite.com/DanielVC

具有有关配置文件的详细信息的控制器如下

  • 控制器:珀菲尔
  • 操作: 珀菲尔

我已经为所有应用程序提供了以下路线:

routes.MapRoute(
  name: "Default",
  url: "{controller}/{action}/{id}",
  defaults: new { controller = "Pages", action = "Index", id = UrlParameter.Optional }
);

我已经尝试创建以下路由:

routes.MapRoute(
  name: "Perfil",
  url: "Pages/{id}",
  defaults: new { controller = "Pages", action = "Index", id = UrlParameter.Optional }
);

但没有奏效

如何为 www.website.com/profile 创建路由

将此 BEFORE(上面)作为默认路由。

routes.MapRoute(
  name: "Perfil",
  url: "{id}",
  defaults: new { controller = "Pages", action = "Index", id = UrlParameter.Optional }
);

此外,这将导致每个路由都重定向到 Perfil 路由。如果未找到用户名(例如 mywebsite.com/randomuserthatdoesntexist)和/或其他路由 (mywebsite.com/contact),则必须在该操作中创建重定向。

编辑

方法示例

public class PagesController : Controller
{
    public ActionResult Index(string id)
    {
        if (matchesOtherRoute(id))
            RedirectToAction("OtherAction", "OtherController");
        if (!userExists(id))
            RedirectToAction("NotFoundAction", "ErrorController");
        // Do other stuff here
     }
}

它应该是这样的路线。地图路线( 名称:"珀菲尔", 网址: "Pages/{id}", 默认值:new { controller = "Perfil", action = "Perfil", id = UrlParameter.Optional });