2
我有一個由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" });
我希望上面的網址打預覽控制器,或者至少是捕捉一切,但也控制器正在被擊中,我只是得到一個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");
}
}
}
這些控制器\操作('Preview','Index','Alias','CatchAll')是否有任何'Route'屬性? – Evk
@EVK控制器/動作沒有任何屬性 - 請參閱上面的編輯 – Pete
@Pete,我創建了一個小例子,你的路由映射是正確的,即使用'/ - /'也可以通過'Index'操作來訪問URL。也許你得到404,因爲'model.Page'是'null'? –