Неверное состояние просмотра при использовании RewritePath - PullRequest
1 голос
/ 04 октября 2010

У меня есть это в моем global.asax

void Application_BeginRequest(object sender, EventArgs e) 
{
    string pathAndQuery = Request.Url.PathAndQuery.ToString().ToLower();
    if (pathAndQuery.Contains("prettyUrl"))
    {
        HttpContext.Current.RewritePath("Category.aspx?catg=uglyUrl");
    }
}

, он работает нормально, но иногда я получаю 500, не в состоянии проверить данные , так что я думаю, это потому, что сгенерирована контрольная суммаот имени URL.который не соответствует состоянию просмотра.

Так как вы решаете это, чтобы вы могли использовать RewritePath, но не получили 500 ошибок?

Редактировать забылиупомянуть, что у меня есть статический ключ проверки машинного ключа в web.config

Edit2 обнаружил, что у кого-то есть точно такая же проблема: http://bytes.com/topic/asp-net/answers/298680-form-action-context-rewritepath#post1172026

путь перезаписи вызывает неверныйсостояние просмотра при обратной передаче

1 Ответ

1 голос
/ 21 октября 2010

Переключение с на maproutes с System.Web.Routing

Старый код:

void Application_BeginRequest(object sender, EventArgs e) 
{
    string pathAndQuery = Request.Url.PathAndQuery.ToString().ToLower();

    if (pathAndQuery.Contains("thisisawesome"))
    {
        HttpContext.Current.RewritePath("Products.aspx?catg=14&cat=161");
    }
}

Новый код:

Источник: http://weblogs.asp.net/scottgu/archive/2009/10/13/url-routing-with-asp-net-4-web-forms-vs-2010-and-net-4-0-series.aspx

void Application_Start(object sender, EventArgs e) 
{
    RegisterRoutes(RouteTable.Routes);
}

void RegisterRoutes(RouteCollection routes)
{
    routes.MapPageRoute("test", 
                        "thisisawesome", 
                        "~/Products.aspx?catg=14&cat=161");
}
...