如果着陆页有 slug,则使来自该着陆页的链接包含 slug
if landing page has slug, make links from that landing page contain slug
我正在使用 slugs 为用户更改登录页面的主题。如果他们在 URL 后附加了 slug 的登录页面开始他们的旅程,我想确保该页面上的所有 link 都将转到它们的 slug 等价物。
这是我的路由配置:
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
name: "SignUpJourney",
url: "SignUp/{signUpJourney}/{slug}/{action}",
defaults: new { controller = SignUpController.ControllerName, action = SignUpController.IndexAction, slug = UrlParameter.Optional, signUpJourney = UrlParameter.Optional },
namespaces: new[] { "MyApp.Controllers" },
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{slug}",
defaults: new { controller = HomeController.ControllerName, action = HomeController.IndexAction, slug= UrlParameter.Optional },
namespaces: new[] { "MyApp.Controllers" }
);
}
当我在 URL 末尾手动输入别名时,页面会根据别名将我带到正确的主题登录页面,但该页面上的 links (例如 Login) link 将我路由回默认的、无样式的登录页面。 MVC 中有没有一种方法可以将 slug 添加到任何 links,这些 links 是从有 slug 的旅程开始的?我正在努力寻找关于此的文章 and/or 最佳实践,但我对 asp.net-mvc 也相当陌生。
谢谢
您可以检查当前请求是否包含给定的 slug,然后根据该请求设置所需的 URL。
if (Context.Request.QueryString.Value.Contains("your-slug"))
{
@Html.ActionLink("Link Test", "ActionName", "ControllerName", new { slug = 'your-slug' })
} else
{
@Html.ActionLink("Link Test", "ActionName", "ControllerName")
}
我正在使用 slugs 为用户更改登录页面的主题。如果他们在 URL 后附加了 slug 的登录页面开始他们的旅程,我想确保该页面上的所有 link 都将转到它们的 slug 等价物。
这是我的路由配置:
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
name: "SignUpJourney",
url: "SignUp/{signUpJourney}/{slug}/{action}",
defaults: new { controller = SignUpController.ControllerName, action = SignUpController.IndexAction, slug = UrlParameter.Optional, signUpJourney = UrlParameter.Optional },
namespaces: new[] { "MyApp.Controllers" },
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{slug}",
defaults: new { controller = HomeController.ControllerName, action = HomeController.IndexAction, slug= UrlParameter.Optional },
namespaces: new[] { "MyApp.Controllers" }
);
}
当我在 URL 末尾手动输入别名时,页面会根据别名将我带到正确的主题登录页面,但该页面上的 links (例如 Login) link 将我路由回默认的、无样式的登录页面。 MVC 中有没有一种方法可以将 slug 添加到任何 links,这些 links 是从有 slug 的旅程开始的?我正在努力寻找关于此的文章 and/or 最佳实践,但我对 asp.net-mvc 也相当陌生。
谢谢
您可以检查当前请求是否包含给定的 slug,然后根据该请求设置所需的 URL。
if (Context.Request.QueryString.Value.Contains("your-slug"))
{
@Html.ActionLink("Link Test", "ActionName", "ControllerName", new { slug = 'your-slug' })
} else
{
@Html.ActionLink("Link Test", "ActionName", "ControllerName")
}