我有一个 MVC 路由,在 IE 和 Firefox 中显示为http://{site}.com/{value}/
,这是我期望的正确格式。但是,Chrome 中的同一条路线最后会有一个额外的问号;即http://{site}.com/{value}/?
。没有查询字符串变量或我通过的额外数据..另外,在 IE 中它可以正常工作并且没有额外的?在路线的尽头。
为什么会有额外的?在 URL 的末尾,我怎样才能摆脱它?我的任务是规范我们网站的 URL,以帮助搜索爬取结果,这阻碍了我的任务。另外,这个额外字符的出现是否会影响从谷歌或其他公司的搜索引擎抓取?
编辑:我正在使用此值在我的控制器操作上设置我的路由:
[GET("{city}-{state}-{zip}/{name}/{entity}")]
public static class AttributeRouting
{
public static void RegisterRoutes(RouteCollection routes)
{
// See http://github.com/mccalltd/AttributeRouting/wiki/3.-Configuration for more options.
// To debug routes locally using the built in ASP.NET development server, go to /routes.axd
routes.MapAttributeRoutes(config =>
{
config.AppendTrailingSlash = true;
config.ScanAssembly(Assembly.GetExecutingAssembly());
config.AddDefaultRouteConstraint(@"^entity$", new RegexRouteConstraint(@"^\d{6,7}$"));
config.AddDefaultRouteConstraint(@"^address$", new RegexRouteConstraint(@".{3,}$"));
config.AddDefaultRouteConstraint(@"^stateName$", new RegexRouteConstraint(@"^[^-]+$"));
config.AddDefaultRouteConstraint(@"^page$", new RegexRouteConstraint(@"[0-9]*?$"));
});
}
public static void Start()
{
RegisterRoutes(RouteTable.Routes);
}
}