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.
Woher wissen Sie, dass dies 4 mal passiert? –
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. –
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. –