2016-06-08 57 views
0

我正在嘗試做一些相當基本的工作,但似乎無法正常工作。 我有一個剃鬚刀頁面,我在我的NewsSurfaceController中調用一個動作'索引'。在路徑值中找不到Umbraco路由定義

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage 
 
@{ 
 
    Layout = "Master.cshtml"; 
 
} 
 
<div class="row"> 
 
    <h1 class="col-xs-12 col-sm-4">@CurrentPage.Name</h1> 
 
    <div class="col-xs-12 col-sm-2 col-sm-offset-4 "> 
 
     @Html.ActionLink("Archief", "Archive", "NewsSurface", null, new { @class = "content-link-button-reverse" }) 
 
    </div> 
 
</div> 
 

 

 

 
@Html.Action("Index", "NewsSurface")

我newscontroller:

public class NewsSurfaceController : SurfaceController 
{ 
    private int itemsPerpage= 4; 

    public ActionResult Index() 
    { 
     return PartialView("newslist", new NewsRepo(CurrentPage).items.Take(itemsPerpage)); 
    } 

    public ActionResult Archive() 
    { 
     return PartialView("newslist", new NewsRepo(CurrentPage).archivedItems.Take(itemsPerpage)); 
    } 

} 

這將返回一個局部視圖,只是在項目迭代。

@inherits Umbraco.Web.Mvc.UmbracoViewPage<MyProject.models.NewsItemViewModel> 
 

 

 
     @foreach (MyProject.models.NewsItem item in Model) 
 
     { 
 
      //displays the properties 
 
     }

當我去的網頁,它讓我看到正確的項目,但是當我點擊ActionLink的,它拋出一個錯誤。

無法找到在路由值的一把umbraco路線定義,要求必須在一把umbraco請求

的情況下進行。當我調試,問題似乎是「當前頁」對象。

在Umbraco.Web.Mvc.SurfaceController.get_CurrentPage() 在MyProject.Controllers.NewsSurfaceController.Archive()在C:\用戶\托馬斯\文件\的Visual Studio 2015 \項目\ MyProject的\控制器\ NewsSurfaceController .cs:line 25 at lambda_method(Closure,ControllerBase,Object []) at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller,Object [] parameters) at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext,IDictionary 2 parameters) at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary 2 parameters) at System.Web.Mvc.Async.AsyncControllerActionInvoker.ActionInvocation.InvokeSynchronousActionMethod() 在System.Web.Mvc.Async.AsyncControllerActionInvoker.b__39(IAsyncResult的asyncResult,ActionInvocation innerInvokeState) 在System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult 2.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase 1.End() 在System.Web.Mvc.Async.AsyncResultWrapper。端[TResult](IAsyncResult的asyncResult,對象標籤) 在System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult的asyncResult) 在System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.b__3d() 在的System.Web .Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters。 <> c__DisplayClass46.b__3f()

我在做什麼錯? 任何人都可以指向正確的方向。

親切的問候!

--------- --------編輯

好吧顯然,這是一把umbraco的錯誤。 Issue on the umbraco forum

回答

0

您的控制器是否繼承自SurfaceController?否則,路線將不會爲您註冊。

+0

謝謝你的迴應。我很抱歉,我應該把我的完整控制器代碼放在我的帖子中。它從SurfaceController繼承。 – Thomas