我正在尝试在进行搜索时重写我的网址。但是我甚至无法从我的URL中获取这些片段,或者可能没有片段但是我不知道如何更改它。
我如何尝试在Find.aspx
pageload中获取细分:
IList <string> segments = Request.GetFriendlyUrlSegments();
for (int i = 0; i < segments.Count; i++)
{
Label1.Text += "- " + segments[i] + " -";
}
这只是为了测试它是否找到1段,而不是。
我也试过在其中设置我的RouteConfig:
public static void RegisterRoutes(RouteCollection routes)
{
var settings = new FriendlyUrlSettings();
settings.AutoRedirectMode = RedirectMode.Permanent;
routes.EnableFriendlyUrls(settings);
routes.MapPageRoute("", "Find", "~/Find.aspx");
routes.MapPageRoute("Find", "Find/{Result}", "~/Find.aspx");
}
我想更改此网址:
www.site.com/Find?Result=Test
对此:
www.site.com/Find/Test
或
www.site.com/Test
我“呼叫”此链接Response.redirect("~/Find.aspx?Result=" + searchString)
我也想知道Localhost:xxxxx/Default
是否意味着当我最终购买域名时,我的首页会看起来像www.sitename.com/Default
?如果是这样,我怎样才能将其重新路由为www.sitename.com
?
基本上只是想让我的网站更多SEO。
答案 0 :(得分:1)
你需要在下面的行中发表评论,然后才能运作。
routes.MapPageRoute("", "Find", "~/Find.aspx");
routes.MapPageRoute("Find", "Find/{Result}", "~/Find.aspx");
更多信息 - Refer this。
routes.MapPageRoute("", "FindXXX", "~/Find.aspx");
是用FindXXX替换Find.aspx
,此处FindXXX
是SEO友好名称。并且它不会向Find.aspx
发送任何参数。 用法 - 它为Find.aspx
提供了SEO友好名称。要使用此功能,您需要点击网址 - http://localhost:63197/FindXXX
routes.MapPageRoute("Find", "FindMore/{Result}", "~/Find.aspx");
- 此行添加SEO友好+提供了将参数传递给SEO友好URL的方法。 用法 - 网址 - http://localhost:63197/FindMore/abc
。要获得价值 - 您需要使用以下 - Page.RouteData.Values["Result"]
为什么它不起作用 - 在你的情况下,两行都有SEO友好名称为Find
,这使路由引擎混乱,然后失败。
以下是网址,我试过了。
以下是输出
我评论过以下内容。
答案 1 :(得分:0)
首先你需要mapPage Url赞这个
Routes.MapPageRoute("RouteName", "User/Friendly/Page/Address", "~/OriginalPageAdress.aspx")
Routes.MatPageRoute("Find", "Find/{result}/", "~/Find.aspx")
(/) Character must be place in the last of firendlyUrl b'coz if you enter some text with the space(s) then friendlyUrl will not work Properly.
Protected Sub btnSubmit_Click(sender As Object, e As EventArgs) Handles btnSubmit.Click
//Response.RedirectToRoutePermanent("Search", New With {.paramName = "paramValue", ...})
Response.RedirectToRoutePermanent("Find", New With {.result = "Search Value"})
End Sub
访问&#34;搜索价值&#34;在&#34;〜/ Find.aspx&#34;中输入以下代码页面:
Dim SearchValue as String = Page.RouteData.Values("result")
Response.Write(String.Format("Result For : {0}"), SearchValue)
对于UrlSegments
dim Segm = Request.Urls.Segments(0)