我有以下由Kentico创建的网址预览页面:
但它没有击中我的任何控制器或动作 - 在我的路线配置中,我有以下两条路线:
// 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" });
我希望上面的url能够触及预览控制器,或者至少捕获所有内容,但是两个控制器都没有被命中,我只是找不到404资源。
奇怪的是,如果我从网址中删除/-/
或在其旁边添加一个字母或数字/-1/
,则预览控制器将被点击。有谁知道为什么/-/
导致我的代码不能击中任何控制器?
这是我的预览控制器:
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");
}
}
}
答案 0 :(得分:0)
好的我发现这与Kentico所做的事情有关 - 在我的Global.asax中我注册了以下内容:
ApplicationConfig.RegisterFeatures(ApplicationBuilder.Current);
这会运行以下内容:
public static void RegisterFeatures(ApplicationBuilder builder)
{
if (builder != null)
{
builder.UsePreview();
}
}
删除它允许我的路由启动并且控制器被点击