Ich habe die folgende URL, die von Kentico erstellt wird, eine Seite in der Vorschau:URL trifft keine Aktionen
Aber es ist keine meiner Controller oder Aktionen schlagen - in meinem Route Config ich habe folgende 2 Routen:
// Kentico CMS Console Preview Route
routes.MapRoute(
name: "Preview",
url: "cmsctx/pv/{username}/culture/{culture}/wg/{workflowGuid}/h/{hash}/{*pathname}",
defaults: new { controller = "Preview", action = "Index" });
// Default catch all route
routes.MapRoute(
name: "Default",
url: "{*pathname}",
defaults: new { controller = "Alias", action = "CatchAll" });
ich würde erwarten, dass die oben url die Vorschau-Controller schlagen, oder zumindest der Fang alle, aber weder Controller wird getroffen und ich bekomme nur eine 404 Ressource kann nicht gefunden werden.
Seltsamerweise, wenn ich die /-/
von der URL entfernen oder einen Buchstaben oder eine Nummer daneben setzen /-1/
, dann wird der Vorschau-Controller getroffen werden. Weiß jemand, warum der Code /-/
meinen Code verursacht, um keine Controller zu treffen?
Dies ist meine Vorschau-Controller:
public class PreviewController : Controller
{
public ActionResult Index(PreviewModel model)
{
model = previewModelBuilder.GetPreviewModel(model);
if (model.Page != null)
{
return View(model);
}
else
{
throw new HttpException(404, "Page not found");
}
}
}
Haben Sie 'Route' Attribute auf diesen Controllern \ Aktionen (' Vorschau', 'Index',' Alias', 'CatchAll')? – Evk
@EVK Keine Attribute auf den Controllern/Aktionen - siehe Bearbeiten oben – Pete
@Pete, Ich habe ein kleines Beispiel erstellt, das Mapping Ihrer Routen ist korrekt und die URL wird durch die 'Index' Aktion auch mit'/-/'getroffen. Vielleicht bekommst du 404 wegen 'model.Page' ist' null'? –