¿Cuáles son las mejores prácticas para implementar el patrón de rastreo hashbang/Ajax de Google con ASP.NET MVC?Implementando el rastreo hashbang/Ajax de Google con ASP.NET MVC?
http://code.google.com/web/ajaxcrawling/docs/getting-started.html:
el rastreador va a modificar cada URL AJAX como
www.example.com/ajax.html#!key=value
para convertirse temporalmente
www.example.com/ajax.html?_escaped_fragment_=key=value
marco de enrutamiento de ASP.NET no permite especificar parámetros de cadena de consulta, pero, por supuesto, siempre puede crear un método de acción que tome _escaped_fragment_ como parámetro (o incluso solo busque el parámetro _escaped_fragment_ en el encabezado de la solicitud).
Sin embargo, es un poco engorroso. ¿Hay una mejor manera?
ACTUALIZACIÓN:
que siguió adelante e implementado el siguiente patrón (en mi caso los fragmentos parecen una ruta URL regular). Una vez más, este no es el enfoque más limpio, por lo que cualquier sugerencia es bienvenida.
public virtual ActionResult Index(int id, string _escaped_fragment_)
{
//Handle Google Ajax Crawler
if (_escaped_fragment_ != null)
{
string[] fragments = _escaped_fragment_.Split(new char[]{'/'}, StringSplitOptions.RemoveEmptyEntries);
if (fragments.Length > 0)
{
//parse fragments
//return static content
}
}
//normal action operation
return View();
}
es posible que desee poner esto en el controladores OnActionExecuting método, en lugar de en la acción. De esta forma, puedes redirigir a la acción que consideres mejor. –
Sí, probablemente sea cierto ... –