7 asp.net-mvc seo query-string
我对mvc的seo友好网址设计有点困惑 ....例如以下网址: http://myapp/venues/resturants.aspx?location = central&orderBy = top-rated
使用我的mvc应用程序,我将其映射如下:
 http:// myapp/venues/list/resturants/central/top-rated
 
{controller}/{action}/{category}/{location}/{order}
现在唯一的问题是位置和订单是可选的...因此应该可以提交如下请求:http:// myapp/venues/list/resturants/top-rated.当请求到达控制器动作时,这被证明是一个问题,位置参数自然地获得了"最高评级".
有什么建议?我正在考虑使用显式查询字符串来处理多个参数,但这确实是我的最后一个选项,因为我不想太多地牺牲SEO.
有没有人遇到过这种困境?你是怎么处理的?
提前致谢!
假设位置和订单的允许值是唯一的(即当它们进来时,您可以区分它们,否则如果它们只提供一个,您如何知道它是位置还是订单?),那么您可以只获取两个参数并计算出它们在控制器中的含义。
路线:{controller}/{action}/{param1}/{param2}
控制器动作:
public ActionResult MyAction(string param1, string param2)
{
    string location;
    string order;
    if (!ParseLocation(param1, out location))
    { ParseLocation(param2, out location); }
    // ...
}
不是特别优雅,但确实可以让您获得您想要的 URL。