2009-08-25 5 views
0

Immer wenn .NET Routing in meiner web.CONFIG enthalten ist, bekomme ich einen sys undefined Fehler, der verhindert, dass AJAX geladen wird..NET ROUTING und Ajax sys undefined

Ich verwende .net 3.5 w/c

#

jede Hilfe sehr geschätzt werden würde.

+0

Es gibt bereits eine sehr gute Antwort von [Haacked] (http://stackoverflow.com/users/598/haacked) [hier] (http://stackoverflow.com/questions/273447/how-to-ignore) -route-in-asp-net-forms-URL-Routing # Antwort-276036). Löste mein Problem zumindest. – Shagglez

Antwort

0

Sie benötigen Strecke Schränkt die auf der Route zu verwenden, bedeutet dies, dass Sie eine Routevaluedictionary in Route Instanz hinzufügen müssen in Immobilien contraints

Das folgende Beispiel zeigt, wie ein virtueller Ordner verwenden für die UICulture anzuzeigen.

zB:

RouteTable.Routes.Add(new Route("{locale}/{page}", new CultureRouter()) 
{ 
    Constraints = new RouteValueDictionary() { 
     { "locale", "[a-z]{2}-[a-z]{2}" } , 
     { "page", "([a-z0-9]*).aspx" } 
    } 
}); 
RouteTable.Routes.Add(new Route("{folder}/{page}", new CultureRouter()) 
{ 
    Constraints = new RouteValueDictionary() { 
     { "page", "([a-z0-9]*).aspx" } 
    } 
}); 
RouteTable.Routes.Add(new Route("{locale}/{folder}/{page}", new CultureRouter()) 
{ 
    Constraints = new RouteValueDictionary() { 
      { "locale", "[a-z]{2}-[a-z]{2}" } , 
      { "page", "([a-z0-9]*).aspx" } 
    } 
}); 

In diesem Fall ist diese Route einen regulären Ausdruck für locale Schlüssel zu bewerten und Seiten-Taste, und dann müssen Sie alle Schlüssel in Ihrer IRouteHandler Klasse bewerten

zB:

public IHttpHandler GetHttpHandler(RequestContext requestContext) 
{ 
    StringBuilder virtualPath = new StringBuilder("~/Pages/"); 

    if (requestContext.RouteData.Values.ContainsKey("locale")) 
    { 
     Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(requestContext.RouteData.Values["locale"].ToString()); 
    } 

    if (requestContext.RouteData.Values.ContainsKey("folder")) 
    { 
     virtualPath.AppendFormat("{0}/", requestContext.RouteData.Values["folder"].ToString()); 
    } 

    if (requestContext.RouteData.Values.ContainsKey("page")) 
    { 
     virtualPath.Append(requestContext.RouteData.Values["page"].ToString()); 
    } 

    IHttpHandler pageHandler = BuildManager.CreateInstanceFromVirtualPath(virtualPath.ToString(), typeof(Page)) as IHttpHandler; 

    return pageHandler; 
} 

Ich hoffe, dass dies Ihnen helfen wird.