2009-04-10 6 views
2

Hat jemand so etwas schon mal erlebt? Grundsätzlich habe ich eine Aktion auf einem Controller, der lediglich die Datenbank über ein Repository-Muster abfragt, einige Daten zu ViewData hinzufügt und dann die Ansicht zurückgibt. Aber aus irgendeinem Grund wird diese Aktion 4 mal pro Anfrage genannt.ASP.NET MVC-Controller-Aktion, die 4 Mal pro Anfrage ausgeführt wird

Die ganze Aktion selbst ist nur etwa 10 Zeilen lang:

public ActionResult Details(int id, string slug) { 
    Product p = productRepository.GetProduct(id); 

    IEnumerable<Image> imgs = productRepository.GetImages(p.ProductId); 
    if (imgs.Count() > 0) { 
     ViewData["MainImage"] = imgs.First(); 
     ViewData["Images"] = imgs; 
    } 

    Brand brand = productRepository.GetBrand(p.ProductId); 
    ViewData["Brand"] = brand; 

    var categories = productRepository.GetCategories(p.ProductId, true); 
    ViewData["ProductCategories"] = categories; 

    return View("Details", p); 
} 

Auch die in meinem Global.asax definierten Routen sind wie folgt:

routes.MapRoute(
    "SlugsAfterId", 
    "{controller}.mvc/{action}/{id}/{slug}", 
    new { controller = "Products", action = "Browse", id = "" } 
); 

// The default route that comes with ASP.NET MVC 
routes.MapRoute(
    "Default",            // Route name 
    "{controller}.mvc/{action}/{id}",       // URL with parameters 
    new { controller = "Home", action = "Index", id = "" } // Parameter defaults 
); 

jemand eine Licht in diese Kann Bitte? Ich bin völlig ratlos.

+0

Woher wissen Sie, dass dies 4 mal passiert? –

+0

Es ist 4 Mal im Firebug Net -> HTML-Panel aufgeführt. Ich habe dies selbst überprüft, indem ich die Burp Suite verwendet habe und die Seite tatsächlich 4 Mal angefordert habe. –

+0

Uhh, das könnte ein anderes Problem sein, das nicht mit MVC zusammenhängt. Sind Sie sicher, dass die 4 Anforderungen nicht nur für CSS/JS-Dateien gelten? Klingt so, als wären das asynchrone Anfragen oder so etwas. Sind jede der Anfragen HTTP 200? Sie könnten HTTP 30x-Weiterleitungen sein. –

Antwort

7

Sieht so aus, als wären diese Anfragen clientseitige Anfragen wie Bilder, CSS- oder JS-Dateien.

+0

Danke - es ging nur um Bilder mit fehlenden src-Attributen. –

+0

Ja klar, mir ist das schon mal passiert. :) –

Verwandte Themen